summaryrefslogtreecommitdiff
path: root/sysinfo/os
diff options
context:
space:
mode:
Diffstat (limited to 'sysinfo/os')
-rw-r--r--sysinfo/os/any-os.mk16
-rw-r--r--sysinfo/os/bsd.mk14
-rw-r--r--sysinfo/os/cygwin.mk17
-rw-r--r--sysinfo/os/darwin.mk18
-rw-r--r--sysinfo/os/elf.mk6
-rw-r--r--sysinfo/os/linux.mk14
-rw-r--r--sysinfo/os/midipix.mk15
-rw-r--r--sysinfo/os/mingw.mk18
-rw-r--r--sysinfo/os/mingw32.mk1
-rw-r--r--sysinfo/os/mingw64.mk1
-rw-r--r--sysinfo/os/msys.mk18
-rw-r--r--sysinfo/os/pe.mk99
12 files changed, 237 insertions, 0 deletions
diff --git a/sysinfo/os/any-os.mk b/sysinfo/os/any-os.mk
new file mode 100644
index 0000000..6c5a2af
--- /dev/null
+++ b/sysinfo/os/any-os.mk
@@ -0,0 +1,16 @@
+OS = any-os
+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: $(IMPLIB_DEF) $(IMPLIB_VER) $(IMPLIB_SONAME) $(IMPLIB_SOLINK)
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/bsd.mk b/sysinfo/os/bsd.mk
new file mode 100644
index 0000000..67453da
--- /dev/null
+++ b/sysinfo/os/bsd.mk
@@ -0,0 +1,14 @@
+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
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/cygwin.mk b/sysinfo/os/cygwin.mk
new file mode 100644
index 0000000..290aa0d
--- /dev/null
+++ b/sysinfo/os/cygwin.mk
@@ -0,0 +1,17 @@
+OS = cygwin
+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
+OS_IMPLIB_TOOL = dlltool
+
+CFLAGS_PIC =
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/darwin.mk b/sysinfo/os/darwin.mk
new file mode 100644
index 0000000..abc9bc7
--- /dev/null
+++ b/sysinfo/os/darwin.mk
@@ -0,0 +1,18 @@
+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
+
+CFLAGS_OS += -D_DARWIN_C_SOURCE
+
+.PHONY: $(IMPLIB_DEF) $(IMPLIB_VER) $(IMPLIB_SONAME) $(IMPLIB_SOLINK)
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX =
+OS_LIB_SUFFIXED_SUFFIX = $(OS_LIB_SUFFIX)
diff --git a/sysinfo/os/elf.mk b/sysinfo/os/elf.mk
new file mode 100644
index 0000000..6878c6a
--- /dev/null
+++ b/sysinfo/os/elf.mk
@@ -0,0 +1,6 @@
+DSO_REF_VER = $(SHARED_LIB)
+DSO_REF_SONAME = $(SHARED_SONAME)
+DSO_REF_SOLINK = $(SHARED_SOLINK)
+
+LDFLAGS_SHARED += -Wl,-soname
+LDFLAGS_SHARED += -Wl,$(DSO_SONAME)
diff --git a/sysinfo/os/linux.mk b/sysinfo/os/linux.mk
new file mode 100644
index 0000000..b9a5f5c
--- /dev/null
+++ b/sysinfo/os/linux.mk
@@ -0,0 +1,14 @@
+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
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/midipix.mk b/sysinfo/os/midipix.mk
new file mode 100644
index 0000000..d23d387
--- /dev/null
+++ b/sysinfo/os/midipix.mk
@@ -0,0 +1,15 @@
+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 = symlink
+OS_BINFMT = PE
+OS_IMPLIB_TOOL = mdso
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/mingw.mk b/sysinfo/os/mingw.mk
new file mode 100644
index 0000000..1a352ba
--- /dev/null
+++ b/sysinfo/os/mingw.mk
@@ -0,0 +1,18 @@
+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
+OS_IMPLIB_TOOL = dlltool
+
+CFLAGS_PIC =
+CFLAGS_OS += -U__STRICT_ANSI__
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/mingw32.mk b/sysinfo/os/mingw32.mk
new file mode 100644
index 0000000..542b6a9
--- /dev/null
+++ b/sysinfo/os/mingw32.mk
@@ -0,0 +1 @@
+include $(PROJECT_DIR)/sysinfo/os/mingw.mk
diff --git a/sysinfo/os/mingw64.mk b/sysinfo/os/mingw64.mk
new file mode 100644
index 0000000..542b6a9
--- /dev/null
+++ b/sysinfo/os/mingw64.mk
@@ -0,0 +1 @@
+include $(PROJECT_DIR)/sysinfo/os/mingw.mk
diff --git a/sysinfo/os/msys.mk b/sysinfo/os/msys.mk
new file mode 100644
index 0000000..70fcd68
--- /dev/null
+++ b/sysinfo/os/msys.mk
@@ -0,0 +1,18 @@
+OS = msys
+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
+OS_IMPLIB_TOOL = dlltool
+
+CFLAGS_PIC =
+CFLAGS_OS += -U__STRICT_ANSI__
+
+# dso suffix notation
+OS_LIB_PREFIXED_SUFFIX = $(OS_LIB_SUFFIX)
+OS_LIB_SUFFIXED_SUFFIX =
diff --git a/sysinfo/os/pe.mk b/sysinfo/os/pe.mk
new file mode 100644
index 0000000..6f9e8ef
--- /dev/null
+++ b/sysinfo/os/pe.mk
@@ -0,0 +1,99 @@
+DSO_REF_VER = $(IMPLIB_VER)
+DSO_REF_SONAME = $(IMPLIB_SONAME)
+DSO_REF_SOLINK = $(IMPLIB_SOLINK)
+
+LDFLAGS_IMPLIB += -Wl,--output-def
+LDFLAGS_IMPLIB += -Wl,$(IMPLIB_DEF)
+
+LDFLAGS_SONAME += -Wl,-soname
+LDFLAGS_SONAME += -Wl,$(DSO_SONAME)
+LDFLAGS_SHARED += $(LDFLAGS_SONAME)
+
+DSO_LIBPATH ?= loader
+PE_SUBSYSTEM ?= windows
+LDFLAGS_COMMON += -Wl,--subsystem=$(PE_SUBSYSTEM)
+
+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
+
+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 ($(OS_IMPLIB_TOOL),mdso)
+
+$(IMPLIB_VER): $(IMPLIB_DEF)
+ $(MDSO) -m $(HOST_BITS) -i $(IMPLIB_VER) -n $(DSO_VER) -l $(DSO_LIBPATH) $<
+
+else ifeq ($(OS_IMPLIB_TOOL),dlltool)
+
+$(IMPLIB_VER): $(IMPLIB_DEF)
+ $(DLLTOOL) -l $(IMPLIB_VER) -d $(IMPLIB_DEF) -D $(DSO_VER)
+
+endif
+
+
+
+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
+
+
+ifeq ($(OS_IMPLIB_TOOL),mdso)
+
+$(IMPLIB_SONAME): $(IMPLIB_DEF)
+ $(MDSO) -m $(HOST_BITS) -i $(IMPLIB_SONAME) -n $(DSO_SONAME) $(IMPLIB_DEF)
+
+else ifeq ($(OS_IMPLIB_TOOL),dlltool)
+
+$(IMPLIB_SONAME): $(IMPLIB_DEF)
+ $(DLLTOOL) -l $(IMPLIB_SONAME) -d $(IMPLIB_DEF) -D $(DSO_SONAME)
+
+endif
+
+
+$(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 $(IMPLIB_SOLINK).tmp
+ ln -s $(IMP_SONAME) $(IMPLIB_SOLINK).tmp
+ mv $(IMPLIB_SOLINK).tmp $(DESTDIR)$(LIBDIR)/$(IMP_SOLINK)
+
+endif