mirror of
https://github.com/RPCS3/libusb.git
synced 2026-01-31 01:25:19 +01:00
Move library version number from configure.ac to libusb/version.h
This is neccessary to support native MS builds. The Windows resource file libusb/libusb-1.0.rc must include the release version, which was previously only available after configure had run and had substituted the numbers into a generated libusb/libusb-1.0.rc file. The version atoms are now stored as CPP style #defines in libusb/version.h so that the .rc no longer needs to be generated but can simply include the header file and access the version information directly. The m4 macro LU_DEFINE_VERSION_ATOM() was added to configure.ac to get version atoms from libusb/version.h for use in AC_INIT(). The macro handles C and C++ style comments in version.h, but can easily be made to fail by obscuring the file. Please don't do that. Tested with MinGW using autoconf, and manual compile of libusb-1.0.rc using RC.EXE Version 5.2.3690.0 from Visual C++ 2005 Express Edition.
This commit is contained in:
20
configure.ac
20
configure.ac
@@ -1,12 +1,17 @@
|
||||
m4_define(LIBUSB_MAJOR, [1])
|
||||
m4_define(LIBUSB_MINOR, [0])
|
||||
m4_define(LIBUSB_MICRO, [8])
|
||||
dnl These m4 macros are whitespace sensitive and break if moved around much.
|
||||
m4_define([LU_VERSION_H], m4_include([libusb/version.h]))
|
||||
m4_define([LU_DEFINE_VERSION_ATOM],
|
||||
[m4_define([$1], m4_bregexp(LU_VERSION_H,
|
||||
[^#define\s*$1\s*\([0-9]*\).*], [\1]))])
|
||||
dnl The m4_bregexp() returns (only) the numbers following the #define named
|
||||
dnl in the first macro parameter. m4_define() then defines the name for use
|
||||
dnl in AC_INIT().
|
||||
|
||||
AC_INIT([libusb], LIBUSB_MAJOR.LIBUSB_MINOR.LIBUSB_MICRO, [libusb-devel@lists.sourceforge.net], [libusb], [http://www.libusb.org/])
|
||||
LU_DEFINE_VERSION_ATOM([LIBUSB_MAJOR])
|
||||
LU_DEFINE_VERSION_ATOM([LIBUSB_MINOR])
|
||||
LU_DEFINE_VERSION_ATOM([LIBUSB_MICRO])
|
||||
|
||||
AC_SUBST([LIBUSB_VERSION_MAJOR], [LIBUSB_MAJOR])
|
||||
AC_SUBST([LIBUSB_VERSION_MINOR], [LIBUSB_MINOR])
|
||||
AC_SUBST([LIBUSB_VERSION_MICRO], [LIBUSB_MICRO])
|
||||
AC_INIT([libusb], LIBUSB_MAJOR[.]LIBUSB_MINOR[.]LIBUSB_MICRO, [libusb-devel@lists.sourceforge.net], [libusb], [http://www.libusb.org/])
|
||||
|
||||
# Library versioning
|
||||
# These numbers should be tweaked on every release. Read carefully:
|
||||
@@ -188,7 +193,6 @@ AC_SUBST(LTLDFLAGS)
|
||||
AC_CONFIG_FILES([libusb-1.0.pc])
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_CONFIG_FILES([libusb/Makefile])
|
||||
AC_CONFIG_FILES([libusb/libusb-1.0.rc])
|
||||
AC_CONFIG_FILES([examples/Makefile])
|
||||
AC_CONFIG_FILES([doc/Makefile])
|
||||
AC_CONFIG_FILES([doc/doxygen.cfg])
|
||||
|
||||
@@ -7,9 +7,24 @@
|
||||
*/
|
||||
#include "winresrc.h"
|
||||
|
||||
#include "version.h"
|
||||
#ifndef LIBUSB_VERSIONSTRING
|
||||
#define LU_STR(s) #s
|
||||
#define LU_XSTR(s) LU_STR(s)
|
||||
#if LIBUSB_NANO > 0
|
||||
#define LIBUSB_VERSIONSTRING \
|
||||
LU_XSTR(LIBUSB_MAJOR) "." LU_XSTR(LIBUSB_MINOR) "." \
|
||||
LU_XSTR(LIBUSB_MICRO) "." LU_XSTR(LIBUSB_NANO) "\0"
|
||||
#else
|
||||
#define LIBUSB_VERSIONSTRING \
|
||||
LU_XSTR(LIBUSB_MAJOR) "." LU_XSTR(LIBUSB_MINOR) "." \
|
||||
LU_XSTR(LIBUSB_MICRO) "\0"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION @LIBUSB_VERSION_MAJOR@,@LIBUSB_VERSION_MINOR@,@LIBUSB_VERSION_MICRO@,0
|
||||
PRODUCTVERSION @LIBUSB_VERSION_MAJOR@,@LIBUSB_VERSION_MINOR@,@LIBUSB_VERSION_MICRO@,0
|
||||
FILEVERSION LIBUSB_MAJOR,LIBUSB_MINOR,LIBUSB_MICRO,LIBUSB_NANO
|
||||
PRODUCTVERSION LIBUSB_MAJOR,LIBUSB_MINOR,LIBUSB_MICRO,LIBUSB_NANO
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@@ -27,14 +42,14 @@ BEGIN
|
||||
VALUE "Comments", "\0"
|
||||
VALUE "CompanyName", "libusb.org\0"
|
||||
VALUE "FileDescription", "C library for writing portable USB drivers in userspace\0"
|
||||
VALUE "FileVersion", "@PACKAGE_VERSION@"
|
||||
VALUE "FileVersion", LIBUSB_VERSIONSTRING
|
||||
VALUE "InternalName", "libusb\0"
|
||||
VALUE "LegalCopyright", "See individual source files, GNU LGPL v2.1 or later.\0"
|
||||
VALUE "LegalTrademarks", "http://www.gnu.org/licenses/lgpl-2.1.html\0"
|
||||
VALUE "OriginalFilename", "libusb-1.0.dll\0"
|
||||
VALUE "PrivateBuild", "\0"
|
||||
VALUE "ProductName", "libusb-1.0\0"
|
||||
VALUE "ProductVersion", "@PACKAGE_VERSION@"
|
||||
VALUE "ProductVersion", LIBUSB_VERSIONSTRING
|
||||
VALUE "SpecialBuild", "\0"
|
||||
END
|
||||
END
|
||||
14
libusb/version.h
Normal file
14
libusb/version.h
Normal file
@@ -0,0 +1,14 @@
|
||||
/* This file is parsed by m4 and windres and RC.EXE so please keep it simple. */
|
||||
#ifndef LIBUSB_MAJOR
|
||||
#define LIBUSB_MAJOR 1
|
||||
#endif
|
||||
#ifndef LIBUSB_MINOR
|
||||
#define LIBUSB_MINOR 0
|
||||
#endif
|
||||
#ifndef LIBUSB_MICRO
|
||||
#define LIBUSB_MICRO 8
|
||||
#endif
|
||||
/* LIBUSB_NANO may be used for Windows internal versioning. 0 means unused. */
|
||||
#ifndef LIBUSB_NANO
|
||||
#define LIBUSB_NANO 0
|
||||
#endif
|
||||
Reference in New Issue
Block a user