summaryrefslogtreecommitdiffhomepage
path: root/sysinfo
diff options
context:
space:
mode:
Diffstat (limited to 'sysinfo')
-rwxr-xr-xsysinfo/host/host.sh1
-rw-r--r--sysinfo/host/i686-nt32-midipix.mk4
-rw-r--r--sysinfo/host/i686-unknown-linux.mk4
-rw-r--r--sysinfo/host/i686-w64-mingw32.mk4
-rw-r--r--sysinfo/host/native.mk4
-rw-r--r--sysinfo/host/x86_64-nt64-midipix.mk4
-rw-r--r--sysinfo/host/x86_64-unknown-linux.mk4
-rw-r--r--sysinfo/host/x86_64-w64-mingw32.mk4
-rw-r--r--sysinfo/os/any-os.mk4
-rw-r--r--sysinfo/os/bsd.mk20
-rw-r--r--sysinfo/os/darwin.mk22
-rw-r--r--sysinfo/os/elf.mk2
-rw-r--r--sysinfo/os/linux.mk20
-rw-r--r--sysinfo/os/midipix.mk24
-rw-r--r--sysinfo/os/mingw.mk25
-rw-r--r--sysinfo/os/pe.mk70
-rw-r--r--sysinfo/toolchain/binutils.mk1
-rw-r--r--sysinfo/toolchain/llvm.mk1
-rwxr-xr-xsysinfo/version.sh61
19 files changed, 208 insertions, 71 deletions
diff --git a/sysinfo/host/host.sh b/sysinfo/host/host.sh
index 9caa07b..b3975ae 100755
--- a/sysinfo/host/host.sh
+++ b/sysinfo/host/host.sh
@@ -21,7 +21,6 @@ host_test()
exit 2
}
-
# one: args
for arg ; do
case "$arg" in
diff --git a/sysinfo/host/i686-nt32-midipix.mk b/sysinfo/host/i686-nt32-midipix.mk
index df3185b..fd4b8f8 100644
--- a/sysinfo/host/i686-nt32-midipix.mk
+++ b/sysinfo/host/i686-nt32-midipix.mk
@@ -1,5 +1,5 @@
include $(PROJECT_DIR)/sysinfo/os/midipix.mk
-ARCH = nt32
-HOST_BITS = 32
+ARCH = nt32
+HOST_BITS = 32
HOST_UNDERSCORE = '_'
diff --git a/sysinfo/host/i686-unknown-linux.mk b/sysinfo/host/i686-unknown-linux.mk
index 79d497b..bec437c 100644
--- a/sysinfo/host/i686-unknown-linux.mk
+++ b/sysinfo/host/i686-unknown-linux.mk
@@ -1,5 +1,5 @@
include $(PROJECT_DIR)/sysinfo/os/linux.mk
-ARCH = i386
-HOST_BITS = 32
+ARCH = i386
+HOST_BITS = 32
HOST_UNDERSCORE = '_'
diff --git a/sysinfo/host/i686-w64-mingw32.mk b/sysinfo/host/i686-w64-mingw32.mk
index b8ba461..b18e2e3 100644
--- a/sysinfo/host/i686-w64-mingw32.mk
+++ b/sysinfo/host/i686-w64-mingw32.mk
@@ -1,5 +1,5 @@
include $(PROJECT_DIR)/sysinfo/os/mingw.mk
-ARCH = w32
-HOST_BITS = 32
+ARCH = w32
+HOST_BITS = 32
HOST_UNDERSCORE = '_'
diff --git a/sysinfo/host/native.mk b/sysinfo/host/native.mk
index 08b02b6..f0cf720 100644
--- a/sysinfo/host/native.mk
+++ b/sysinfo/host/native.mk
@@ -1,7 +1,7 @@
include $(PROJECT_DIR)/sysinfo/os/$(NATIVE_OS).mk
-OS = $(NATIVE_OS)
-HOST_BITS = $(NATIVE_OS_BITS)
+OS = $(NATIVE_OS)
+HOST_BITS = $(NATIVE_OS_BITS)
HOST_UNDERSCORE = $(NATIVE_OS_UNDERSCORE)
ifeq ($(OS),linux)
diff --git a/sysinfo/host/x86_64-nt64-midipix.mk b/sysinfo/host/x86_64-nt64-midipix.mk
index fef6345..d0e1d52 100644
--- a/sysinfo/host/x86_64-nt64-midipix.mk
+++ b/sysinfo/host/x86_64-nt64-midipix.mk
@@ -1,5 +1,5 @@
include $(PROJECT_DIR)/sysinfo/os/midipix.mk
-ARCH = nt64
-HOST_BITS = 64
+ARCH = nt64
+HOST_BITS = 64
HOST_UNDERSCORE = ''
diff --git a/sysinfo/host/x86_64-unknown-linux.mk b/sysinfo/host/x86_64-unknown-linux.mk
index 76afb56..4bd1bff 100644
--- a/sysinfo/host/x86_64-unknown-linux.mk
+++ b/sysinfo/host/x86_64-unknown-linux.mk
@@ -1,5 +1,5 @@
include $(PROJECT_DIR)/sysinfo/os/linux.mk
-ARCH = x86_64
-HOST_BITS = 64
+ARCH = x86_64
+HOST_BITS = 64
HOST_UNDERSCORE = ''
diff --git a/sysinfo/host/x86_64-w64-mingw32.mk b/sysinfo/host/x86_64-w64-mingw32.mk
index 7cded15..a86f9b0 100644
--- a/sysinfo/host/x86_64-w64-mingw32.mk
+++ b/sysinfo/host/x86_64-w64-mingw32.mk
@@ -1,5 +1,5 @@
include $(PROJECT_DIR)/sysinfo/os/mingw.mk
-ARCH = w64
-HOST_BITS = 64
+ARCH = w64
+HOST_BITS = 64
HOST_UNDERSCORE = ''
diff --git a/sysinfo/os/any-os.mk b/sysinfo/os/any-os.mk
index 0aa0a75..cf8ec00 100644
--- a/sysinfo/os/any-os.mk
+++ b/sysinfo/os/any-os.mk
@@ -6,5 +6,7 @@ OS_LIB_SUFFIX = .so
OS_IMPLIB_EXT = .invalid
OS_LIBDEF_EXT = .invalid
OS_ARCHIVE_EXT = .a
+OS_SONAME = symlink
+OS_BINFMT = ELF
-.PHONY: $(SHARED_IMPLIB)
+.PHONY: $(IMPLIB_DEF) $(IMPLIB_VER) $(IMPLIB_SONAME) $(IMPLIB_SOLINK)
diff --git a/sysinfo/os/bsd.mk b/sysinfo/os/bsd.mk
index 3fe6711..6e8fac0 100644
--- a/sysinfo/os/bsd.mk
+++ b/sysinfo/os/bsd.mk
@@ -1,10 +1,12 @@
-OS = bsd
-OS_APP_PREFIX =
-OS_APP_SUFFIX =
-OS_LIB_PREFIX = lib
-OS_LIB_SUFFIX = .so
-OS_IMPLIB_EXT = .invalid
-OS_LIBDEF_EXT = .invalid
-OS_ARCHIVE_EXT = .a
+OS = bsd
+OS_APP_PREFIX =
+OS_APP_SUFFIX =
+OS_LIB_PREFIX = lib
+OS_LIB_SUFFIX = .so
+OS_IMPLIB_EXT = .invalid
+OS_LIBDEF_EXT = .invalid
+OS_ARCHIVE_EXT = .a
+OS_SONAME = symlink
+OS_BINFMT = ELF
-.PHONY: $(SHARED_IMPLIB)
+.PHONY: $(IMPLIB_DEF) $(IMPLIB_VER) $(IMPLIB_SONAME) $(IMPLIB_SOLINK)
diff --git a/sysinfo/os/darwin.mk b/sysinfo/os/darwin.mk
index b27a486..5a0b99e 100644
--- a/sysinfo/os/darwin.mk
+++ b/sysinfo/os/darwin.mk
@@ -1,10 +1,14 @@
-OS = darwin
-OS_APP_PREFIX =
-OS_APP_SUFFIX =
-OS_LIB_PREFIX = lib
-OS_LIB_SUFFIX = .dylib
-OS_IMPLIB_EXT = .invalid
-OS_LIBDEF_EXT = .invalid
-OS_ARCHIVE_EXT = .a
+OS = darwin
+OS_APP_PREFIX =
+OS_APP_SUFFIX =
+OS_LIB_PREFIX = lib
+OS_LIB_SUFFIX = .dylib
+OS_IMPLIB_EXT = .invalid
+OS_LIBDEF_EXT = .invalid
+OS_ARCHIVE_EXT = .a
+OS_SONAME = symlink
+OS_BINFMT = MACHO
-.PHONY: $(SHARED_IMPLIB)
+CFLAGS_OS += -D_DARWIN_C_SOURCE
+
+.PHONY: $(IMPLIB_DEF) $(IMPLIB_VER) $(IMPLIB_SONAME) $(IMPLIB_SOLINK)
diff --git a/sysinfo/os/elf.mk b/sysinfo/os/elf.mk
new file mode 100644
index 0000000..5a3940f
--- /dev/null
+++ b/sysinfo/os/elf.mk
@@ -0,0 +1,2 @@
+LDFLAGS_SHARED += -Wl,-soname
+LDFLAGS_SHARED += -Wl,$(DSO_SONAME)
diff --git a/sysinfo/os/linux.mk b/sysinfo/os/linux.mk
index d6221cf..082026b 100644
--- a/sysinfo/os/linux.mk
+++ b/sysinfo/os/linux.mk
@@ -1,10 +1,12 @@
-OS = linux
-OS_APP_PREFIX =
-OS_APP_SUFFIX =
-OS_LIB_PREFIX = lib
-OS_LIB_SUFFIX = .so
-OS_IMPLIB_EXT = .invalid
-OS_LIBDEF_EXT = .invalid
-OS_ARCHIVE_EXT = .a
+OS = linux
+OS_APP_PREFIX =
+OS_APP_SUFFIX =
+OS_LIB_PREFIX = lib
+OS_LIB_SUFFIX = .so
+OS_IMPLIB_EXT = .invalid
+OS_LIBDEF_EXT = .invalid
+OS_ARCHIVE_EXT = .a
+OS_SONAME = symlink
+OS_BINFMT = ELF
-.PHONY: $(SHARED_IMPLIB)
+.PHONY: $(IMPLIB_DEF) $(IMPLIB_VER) $(IMPLIB_SONAME) $(IMPLIB_SOLINK)
diff --git a/sysinfo/os/midipix.mk b/sysinfo/os/midipix.mk
index 7b7f17a..d99b249 100644
--- a/sysinfo/os/midipix.mk
+++ b/sysinfo/os/midipix.mk
@@ -1,14 +1,10 @@
-OS = midipix
-OS_APP_PREFIX =
-OS_APP_SUFFIX =
-OS_LIB_PREFIX = lib
-OS_LIB_SUFFIX = .so
-OS_IMPLIB_EXT = .lib.a
-OS_LIBDEF_EXT = .so.def
-OS_ARCHIVE_EXT = .a
-
-LDFLAGS_CONFIG += -mout-implib
-
-install-implib: shared-implib
- mkdir -p $(DESTDIR)$(LIBDIR)
- cp $(SHARED_IMPLIB) $(DESTDIR)$(LIBDIR)
+OS = midipix
+OS_APP_PREFIX =
+OS_APP_SUFFIX =
+OS_LIB_PREFIX = lib
+OS_LIB_SUFFIX = .so
+OS_IMPLIB_EXT = .lib.a
+OS_LIBDEF_EXT = .so.def
+OS_ARCHIVE_EXT = .a
+OS_SONAME = copy
+OS_BINFMT = PE \ No newline at end of file
diff --git a/sysinfo/os/mingw.mk b/sysinfo/os/mingw.mk
index 1b37dd4..6ade8d5 100644
--- a/sysinfo/os/mingw.mk
+++ b/sysinfo/os/mingw.mk
@@ -1,15 +1,12 @@
-OS = mingw
-OS_APP_PREFIX =
-OS_APP_SUFFIX = .exe
-OS_LIB_PREFIX = lib
-OS_LIB_SUFFIX = .dll
-OS_IMPLIB_EXT = .dll.a
-OS_LIBDEF_EXT = .def
-OS_ARCHIVE_EXT = .a
+OS = mingw
+OS_APP_PREFIX =
+OS_APP_SUFFIX = .exe
+OS_LIB_PREFIX = lib
+OS_LIB_SUFFIX = .dll
+OS_IMPLIB_EXT = .dll.a
+OS_LIBDEF_EXT = .def
+OS_ARCHIVE_EXT = .a
+OS_SONAME = copy
+OS_BINFMT = PE
-CFLAGS_PIC =
-LDFLAGS_CONFIG += -Wl,--out-implib,$(SHARED_IMPLIB)
-
-install-implib: shared-implib
- mkdir -p $(DESTDIR)$(LIBDIR)
- cp $(SHARED_IMPLIB) $(DESTDIR)$(LIBDIR)
+CFLAGS_PIC =
diff --git a/sysinfo/os/pe.mk b/sysinfo/os/pe.mk
new file mode 100644
index 0000000..abc76e8
--- /dev/null
+++ b/sysinfo/os/pe.mk
@@ -0,0 +1,70 @@
+LDFLAGS_IMPLIB += -Wl,--output-def
+LDFLAGS_IMPLIB += -Wl,$(IMPLIB_DEF)
+LDFLAGS_SHARED += $(LDFLAGS_IMPLIB)
+
+LDFLAGS_SHARED += -Wl,-soname
+LDFLAGS_SHARED += -Wl,$(DSO_SONAME)
+
+implib: implib-ver package-implib-soname package-implib-solink
+
+implib-ver: shared-lib $(IMPLIB_VER)
+
+implib-soname: shared-lib $(IMPLIB_SONAME)
+
+implib-solink: shared-lib $(IMPLIB_SOLINK)
+
+$(IMPLIB_DEF): shared-lib
+
+$(IMPLIB_VER): $(IMPLIB_DEF)
+ $(DLLTOOL) -l $(IMPLIB_VER) -d $(IMPLIB_DEF) -D $(DSO_VER)
+
+install-implib: install-implib-ver \
+ package-install-implib-soname \
+ package-install-implib-solink
+
+install-implib-ver: implib-ver
+ mkdir -p $(DESTDIR)$(LIBDIR)
+ cp $(IMPLIB_VER) $(DESTDIR)$(LIBDIR)
+
+clean-implib:
+ rm -f $(SHARED_LIB)
+ rm -f $(IMPLIB_DEF)
+ rm -f $(IMPLIB_VER)
+ rm -f $(IMPLIB_SONAME)
+ rm -f $(IMPLIB_SOLINK)
+
+
+ifeq ($(AVOID_VERSION),yes)
+
+package-implib-soname:
+package-implib-solink:
+package-install-implib-soname:
+package-install-implib-solink:
+
+else
+
+package-implib-soname: implib-soname
+package-implib-solink: implib-solink
+package-install-implib-soname: install-implib-soname
+package-install-implib-solink: install-implib-solink
+
+
+$(IMPLIB_SONAME): $(IMPLIB_DEF)
+ $(DLLTOOL) -l $(IMPLIB_SONAME) -d $(IMPLIB_DEF) -D $(DSO_SONAME)
+
+$(IMPLIB_SOLINK): $(IMPLIB_SONAME)
+ rm -f $(IMPLIB_SOLINK).tmp
+ ln -s $(IMP_SONAME) $(IMPLIB_SOLINK).tmp
+ mv $(IMPLIB_SOLINK).tmp $(IMPLIB_SOLINK)
+
+install-implib-soname: implib-soname
+ mkdir -p $(DESTDIR)$(LIBDIR)
+ cp $(IMPLIB_SONAME) $(DESTDIR)$(LIBDIR)
+
+install-implib-solink: implib-soname
+ mkdir -p $(DESTDIR)$(LIBDIR)
+ rm -f $@.tmp
+ ln -s $(IMP_SONAME) $@.tmp
+ mv $@.tmp $(DESTDIR)$(LIBDIR)/$(IMP_SOLINK)
+
+endif
diff --git a/sysinfo/toolchain/binutils.mk b/sysinfo/toolchain/binutils.mk
index a29ac0c..3232915 100644
--- a/sysinfo/toolchain/binutils.mk
+++ b/sysinfo/toolchain/binutils.mk
@@ -15,3 +15,4 @@ CXXFILT = $(CROSS_COMPILE)c++filt
ELFEDIT = $(CROSS_COMPILE)elfedit
OBJCOPY = $(CROSS_COMPILE)objcopy
READELF = $(CROSS_COMPILE)readelf
+DLLTOOL = $(CROSS_COMPILE)dlltool
diff --git a/sysinfo/toolchain/llvm.mk b/sysinfo/toolchain/llvm.mk
index 3c805a8..65b5396 100644
--- a/sysinfo/toolchain/llvm.mk
+++ b/sysinfo/toolchain/llvm.mk
@@ -15,3 +15,4 @@ CXXFILT = $(CROSS_COMPILE)c++filt
ELFEDIT = $(CROSS_COMPILE)elfedit
OBJCOPY = $(CROSS_COMPILE)objcopy
READELF = $(CROSS_COMPILE)readelf
+DLLTOOL = $(CROSS_COMPILE)dlltool
diff --git a/sysinfo/version.sh b/sysinfo/version.sh
new file mode 100755
index 0000000..8157765
--- /dev/null
+++ b/sysinfo/version.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+usage()
+{
+cat << EOF >&2
+
+Usage:
+ -h show this HELP message
+ -s SRCDIR set source directory
+ -o OUTPUT set output header
+ -p PREFIX set macro prefix
+
+EOF
+exit 1
+}
+
+
+# one
+workdir=$(pwd)
+srcdir=
+output=
+prefix=
+
+
+while getopts "hs:o:p:" opt; do
+ case $opt in
+ h)
+ usage
+ ;;
+ s)
+ srcdir="$OPTARG"
+ ;;
+ o)
+ output="$OPTARG"
+ ;;
+ p)
+ prefix="$OPTARG"
+ ;;
+ \?)
+ printf "Invalid option: -%s" "$OPTARG" >&2
+ usage
+ ;;
+ esac
+done
+
+
+# two
+if [ -z "$srcdir" ] || [ -z "$output" ] || [ -z "$prefix" ]; then
+ usage
+fi
+
+cd "$srcdir" || exit 2
+
+gitver=`git rev-parse --verify HEAD 2>/dev/null` || gitver="unknown"
+macro=`echo "$prefix"_GIT_VERSION | tr '[:lower:]' '[:upper:]'`
+
+cd "$workdir" || exit 2
+printf "#define $macro\t\"$gitver\"\n" > "$output"
+
+# all done
+exit 0