diff options
author | midipix <writeonce@midipix.org> | 2021-04-10 10:40:45 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2021-04-10 20:55:01 +0000 |
commit | 077d2f84e7d2abea63ed8786454772488c21d722 (patch) | |
tree | d73a9bf1d2c353da57715a32a07b2182d7272c27 /sofort | |
parent | 2ba643bfa576dc4d0e15f4934da2137017d8c9a0 (diff) | |
download | u16ports-077d2f84e7d2abea63ed8786454772488c21d722.tar.bz2 u16ports-077d2f84e7d2abea63ed8786454772488c21d722.tar.xz |
build system: posix make support: refactored project-agnostic inference rules.
Diffstat (limited to 'sofort')
-rw-r--r-- | sofort/ccenv/ccenv.sh | 2 | ||||
-rw-r--r-- | sofort/core/_infer/infer_modern.mk | 19 | ||||
-rw-r--r-- | sofort/core/_infer/infer_posix.mk | 19 | ||||
-rw-r--r-- | sofort/core/defs.mk | 2 | ||||
-rw-r--r-- | sofort/core/infer.mk | 4 |
5 files changed, 45 insertions, 1 deletions
diff --git a/sofort/ccenv/ccenv.sh b/sofort/ccenv/ccenv.sh index 623ac38..a9fdc96 100644 --- a/sofort/ccenv/ccenv.sh +++ b/sofort/ccenv/ccenv.sh @@ -1372,6 +1372,7 @@ ccenv_common_init() ccenv_cflags=$(${mb_make} -s -f "$mb_pwd/Makefile.tmp" \ OS_DSO_EXRULES=default \ OS_SONAME=symlink \ + OS_ARCHIVE_EXT='.a' \ .cflags-host) ccenv_cc="$mb_user_cc" @@ -1385,6 +1386,7 @@ ccenv_common_init() ccenv_cflags=$(${mb_make} -s -f "$mb_pwd/Makefile.tmp" \ OS_DSO_EXRULES=default \ OS_SONAME=symlink \ + OS_ARCHIVE_EXT='.a' \ .cflags-native) ccenv_cc="$mb_native_cc" diff --git a/sofort/core/_infer/infer_modern.mk b/sofort/core/_infer/infer_modern.mk new file mode 100644 index 0000000..e7db2a6 --- /dev/null +++ b/sofort/core/_infer/infer_modern.mk @@ -0,0 +1,19 @@ +# infer_modern.mk: modern make target- and inference rules. +# this file is covered by COPYING.SOFORT. + +src/%.ao: $(SOURCE_DIR)/src/%.c + $(CC) -c -o $@ $< $(CFLAGS_APP) + +src/%.lo: $(SOURCE_DIR)/src/%.c + $(CC) -c -o $@ $< $(CFLAGS_SHARED) + +src/%.o: $(SOURCE_DIR)/src/%.c + $(CC) -c -o $@ $< $(CFLAGS_STATIC) + +$(SHARED_LIB): + $(SHARED_LIB_CMD) $@ $^ $(SHARED_LIB_LDFLAGS) $(LDFLAGS_IMPLIB) + +lib/%$(OS_ARCHIVE_EXT): + mkdir -p lib + rm -f $@ + $(AR) rcs $@ $^ diff --git a/sofort/core/_infer/infer_posix.mk b/sofort/core/_infer/infer_posix.mk new file mode 100644 index 0000000..3938325 --- /dev/null +++ b/sofort/core/_infer/infer_posix.mk @@ -0,0 +1,19 @@ +# infer_posix.mk: posix make target- and inference rules. +# this file is covered by COPYING.SOFORT. + +.c.ao: + $(CC) -c -o $@ $< $(CFLAGS_APP) + +.c.lo: + $(CC) -c -o $@ $< $(CFLAGS_SHARED) + +.c.o: + $(CC) -c -o $@ $< $(CFLAGS_STATIC) + +$(SHARED_LIB): + $(SHARED_LIB_CMD) $@ $(SHARED_OBJS) $(SHARED_LIB_LDFLAGS) $(LDFLAGS_IMPLIB) + +$(STATIC_LIB): + mkdir -p lib + rm -f $@ + $(AR) rcs $@ $(STATIC_OBJS) diff --git a/sofort/core/defs.mk b/sofort/core/defs.mk index 7e120bc..2622cff 100644 --- a/sofort/core/defs.mk +++ b/sofort/core/defs.mk @@ -9,7 +9,7 @@ ARCH_LOBJS += $(ARCH_SRCS:.c=.lo) ARCH_OBJS += $(ARCH_SRCS:.c=.o) APP_LOBJS += $(APP_SRCS:.c=.lo) -APP_OBJS += $(APP_SRCS:.c=.o) +APP_OBJS += $(APP_SRCS:.c=.ao) SHARED_OBJS += $(COMMON_LOBJS) $(ARCH_LOBJS) STATIC_OBJS += $(COMMON_OBJS) $(ARCH_OBJS) diff --git a/sofort/core/infer.mk b/sofort/core/infer.mk new file mode 100644 index 0000000..8a1c6dd --- /dev/null +++ b/sofort/core/infer.mk @@ -0,0 +1,4 @@ +# infer.mk: top-level handling of inference rules. +# this file is covered by COPYING.SOFORT. + +include $(PROJECT_DIR)/sofort/core/_infer/infer_$(MAKEMODE).mk |