From 5dc983925380bb06a4d6d0d660e2c8b80a71eac4 Mon Sep 17 00:00:00 2001 From: midipix Date: Fri, 14 Dec 2018 07:12:25 -0500 Subject: build system: created skeleton. --- sysinfo/os/any-os.mk | 16 +++++++++ sysinfo/os/bsd.mk | 14 ++++++++ sysinfo/os/cygwin.mk | 17 +++++++++ sysinfo/os/darwin.mk | 18 ++++++++++ sysinfo/os/elf.mk | 6 ++++ sysinfo/os/linux.mk | 14 ++++++++ sysinfo/os/midipix.mk | 15 ++++++++ sysinfo/os/mingw.mk | 18 ++++++++++ sysinfo/os/mingw32.mk | 1 + sysinfo/os/mingw64.mk | 1 + sysinfo/os/msys.mk | 18 ++++++++++ sysinfo/os/pe.mk | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++ 12 files changed, 237 insertions(+) create mode 100644 sysinfo/os/any-os.mk create mode 100644 sysinfo/os/bsd.mk create mode 100644 sysinfo/os/cygwin.mk create mode 100644 sysinfo/os/darwin.mk create mode 100644 sysinfo/os/elf.mk create mode 100644 sysinfo/os/linux.mk create mode 100644 sysinfo/os/midipix.mk create mode 100644 sysinfo/os/mingw.mk create mode 100644 sysinfo/os/mingw32.mk create mode 100644 sysinfo/os/mingw64.mk create mode 100644 sysinfo/os/msys.mk create mode 100644 sysinfo/os/pe.mk (limited to 'sysinfo/os') 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 -- cgit v1.2.3