diff options
Diffstat (limited to 'sofort/core')
23 files changed, 296 insertions, 132 deletions
diff --git a/sofort/core/_flavor/flavor_app_frontend_disabled.mk b/sofort/core/_flavor/flavor_app_frontend_disabled.mk new file mode 100644 index 0000000..31ad23a --- /dev/null +++ b/sofort/core/_flavor/flavor_app_frontend_disabled.mk @@ -0,0 +1,6 @@ +# flavor_app_frontend_disabled.mk: handling of frontend build options. +# this file is covered by COPYING.SOFORT. + +app-tag: +package-install-app: +package-install-extras: diff --git a/sofort/core/_flavor/flavor_app_frontend_enabled.mk b/sofort/core/_flavor/flavor_app_frontend_enabled.mk new file mode 100644 index 0000000..ebbc256 --- /dev/null +++ b/sofort/core/_flavor/flavor_app_frontend_enabled.mk @@ -0,0 +1,6 @@ +# flavor_app_frontend_enabled.mk: handling of frontend build options. +# this file is covered by COPYING.SOFORT. + +app-tag: package-app app.tag +package-install-app: install-app +package-install-extras: install-extras diff --git a/sofort/core/_flavor/flavor_app_linking_all_shared.mk b/sofort/core/_flavor/flavor_app_linking_all_shared.mk new file mode 100644 index 0000000..fe89318 --- /dev/null +++ b/sofort/core/_flavor/flavor_app_linking_all_shared.mk @@ -0,0 +1,7 @@ +# flavor_app_linking_all_shared.mk: handling of frontend linking options. +# this file is covered by COPYING.SOFORT. + +PACKAGE_APP = $(SHARED_APP) + +package-app: shared-app +app.tag: $(SHARED_APP) diff --git a/sofort/core/_flavor/flavor_app_linking_all_static.mk b/sofort/core/_flavor/flavor_app_linking_all_static.mk new file mode 100644 index 0000000..7a5f620 --- /dev/null +++ b/sofort/core/_flavor/flavor_app_linking_all_static.mk @@ -0,0 +1,7 @@ +# flavor_app_linking_all_static.mk: handling of frontend linking options. +# this file is covered by COPYING.SOFORT. + +PACKAGE_APP = $(STATIC_APP) + +package-app: static-app +app.tag: $(STATIC_APP) diff --git a/sofort/core/_flavor/flavor_app_linking_default.mk b/sofort/core/_flavor/flavor_app_linking_default.mk new file mode 100644 index 0000000..b0c1d34 --- /dev/null +++ b/sofort/core/_flavor/flavor_app_linking_default.mk @@ -0,0 +1,7 @@ +# flavor_app_linking_default.mk: handling of frontend linking options. +# this file is covered by COPYING.SOFORT. + +PACKAGE_APP = $(DEFAULT_APP) + +package-app: default-app +app.tag: $(DEFAULT_APP) diff --git a/sofort/core/_flavor/flavor_install_headers_custom.mk b/sofort/core/_flavor/flavor_install_headers_custom.mk new file mode 100644 index 0000000..4f8da97 --- /dev/null +++ b/sofort/core/_flavor/flavor_install_headers_custom.mk @@ -0,0 +1,4 @@ +# flavor_install_headers_custom.mk: handling of header installation option. +# this file is covered by COPYING.SOFORT. + +install-headers:install-headers-custom diff --git a/sofort/core/_flavor/flavor_install_headers_default.mk b/sofort/core/_flavor/flavor_install_headers_default.mk new file mode 100644 index 0000000..f8b49c4 --- /dev/null +++ b/sofort/core/_flavor/flavor_install_headers_default.mk @@ -0,0 +1,4 @@ +# flavor_install_headers_default.mk: handling of header installation option. +# this file is covered by COPYING.SOFORT. + +install-headers:install-headers-default diff --git a/sofort/core/_flavor/flavor_shared_library_disabled.mk b/sofort/core/_flavor/flavor_shared_library_disabled.mk new file mode 100644 index 0000000..9846e1b --- /dev/null +++ b/sofort/core/_flavor/flavor_shared_library_disabled.mk @@ -0,0 +1,5 @@ +# flavor_shared_library_disabled.mk: handling of shared library dependencies. +# this file is covered by COPYING.SOFORT. + +package-shared: +package-install-shared: diff --git a/sofort/core/_flavor/flavor_shared_library_enabled.mk b/sofort/core/_flavor/flavor_shared_library_enabled.mk new file mode 100644 index 0000000..2e54d21 --- /dev/null +++ b/sofort/core/_flavor/flavor_shared_library_enabled.mk @@ -0,0 +1,5 @@ +# flavor_shared_library_enabled.mk: handling of shared library dependencies. +# this file is covered by COPYING.SOFORT. + +package-shared: shared +package-install-shared: install-shared diff --git a/sofort/core/_flavor/flavor_static_library_disabled.mk b/sofort/core/_flavor/flavor_static_library_disabled.mk new file mode 100644 index 0000000..e46d186 --- /dev/null +++ b/sofort/core/_flavor/flavor_static_library_disabled.mk @@ -0,0 +1,5 @@ +# flavor_static_library_disabled.mk: handling of static library dependencies. +# this file is covered by COPYING.SOFORT. + +package-static: +package-install-static: diff --git a/sofort/core/_flavor/flavor_static_library_enabled.mk b/sofort/core/_flavor/flavor_static_library_enabled.mk new file mode 100644 index 0000000..20d4bd8 --- /dev/null +++ b/sofort/core/_flavor/flavor_static_library_enabled.mk @@ -0,0 +1,5 @@ +# flavor_static_library_enabled.mk: handling of static library dependencies. +# this file is covered by COPYING.SOFORT. + +package-static: static +package-install-static: install-static diff --git a/sofort/core/_infer/infer_modern.mk b/sofort/core/_infer/infer_modern.mk new file mode 100644 index 0000000..aaf3361 --- /dev/null +++ b/sofort/core/_infer/infer_modern.mk @@ -0,0 +1,22 @@ +# 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 $@ $^ + +srcs.tag: + touch $@ diff --git a/sofort/core/_infer/infer_posix.mk b/sofort/core/_infer/infer_posix.mk new file mode 100644 index 0000000..ae990e8 --- /dev/null +++ b/sofort/core/_infer/infer_posix.mk @@ -0,0 +1,27 @@ +# 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) + +srcs.tag: tree.tag + +srcs.tag: + $(PROJECT_DIR)/sofort/tools/srctree.sh \ + --srctree=$(SOURCE_DIR) -- \ + $(COMMON_SRCS) $(APP_SRCS) + touch $@ diff --git a/sofort/core/_version/_soname/version_soname_copy.mk b/sofort/core/_version/_soname/version_soname_copy.mk new file mode 100644 index 0000000..c176d5a --- /dev/null +++ b/sofort/core/_version/_soname/version_soname_copy.mk @@ -0,0 +1,8 @@ +# version_soname_copy.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +install-soname: install-lib + cp $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) + +$(SHARED_SONAME): $(SHARED_LIB) + cp $(SHARED_LIB) $(SHARED_SONAME) diff --git a/sofort/core/_version/_soname/version_soname_symlink.mk b/sofort/core/_version/_soname/version_soname_symlink.mk new file mode 100644 index 0000000..963b891 --- /dev/null +++ b/sofort/core/_version/_soname/version_soname_symlink.mk @@ -0,0 +1,12 @@ +# version_soname_symlink.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +$(SHARED_SONAME): $(SHARED_LIB) + rm -f $@.tmp + ln -s $(DSO_VER) $@.tmp + mv $@.tmp $@ + +install-soname: install-lib + rm -f $(SHARED_SONAME).tmp + ln -s $(DSO_VER) $(SHARED_SONAME).tmp + mv $(SHARED_SONAME).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) diff --git a/sofort/core/_version/version_none.mk b/sofort/core/_version/version_none.mk new file mode 100644 index 0000000..d8fc570 --- /dev/null +++ b/sofort/core/_version/version_none.mk @@ -0,0 +1,10 @@ +# version_none.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +VER_XYZ = +VER_SONAME = + +package-shared-soname: +package-shared-solink: +package-install-soname: +package-install-solink: diff --git a/sofort/core/_version/version_used.mk b/sofort/core/_version/version_used.mk new file mode 100644 index 0000000..4724cee --- /dev/null +++ b/sofort/core/_version/version_used.mk @@ -0,0 +1,26 @@ +# version_used.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +VER_XYZ = .$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH) +VER_SONAME = .$(VER_MAJOR) + +package-shared-soname: shared-soname +package-shared-solink: shared-solink +package-install-soname: install-soname +package-install-solink: install-solink + + + +# libfoo.so (common) +install-solink: install-lib + rm -f $(SHARED_SOLINK).tmp + ln -s $(DSO_VER) $(SHARED_SOLINK).tmp + mv $(SHARED_SOLINK).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SOLINK) + +$(SHARED_SOLINK): $(SHARED_LIB) + rm -f $@.tmp + ln -s $(DSO_VER) $@.tmp + mv $@.tmp $@ + +# libfoo.so.x (symlink or copy) +include $(PROJECT_DIR)/sofort/core/_version/_soname/version_soname_$(OS_SONAME).mk 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/flavor.mk b/sofort/core/flavor.mk index 85c41a2..6a7c97a 100644 --- a/sofort/core/flavor.mk +++ b/sofort/core/flavor.mk @@ -1,73 +1,12 @@ # flavor.mk: top-level handling of build flavors. # this file is covered by COPYING.SOFORT. -ifneq ($(OS_DSO_EXRULES),) include $(PROJECT_DIR)/sofort/exrules/$(OS_DSO_EXRULES).mk -endif -ifeq ($(DISABLE_STATIC),yes) -package-static: -package-install-static: -else -package-static: static -package-install-static: install-static -endif +include $(PROJECT_DIR)/sofort/core/_flavor/flavor_static_library_$(STATIC_LIBRARY_OPT).mk +include $(PROJECT_DIR)/sofort/core/_flavor/flavor_shared_library_$(SHARED_LIBRARY_OPT).mk -ifeq ($(DISABLE_SHARED),yes) -package-shared: -package-install-shared: -else -package-shared: shared -package-install-shared: install-shared -endif +include $(PROJECT_DIR)/sofort/core/_flavor/flavor_app_frontend_$(APP_FRONTEND_OPT).mk +include $(PROJECT_DIR)/sofort/core/_flavor/flavor_app_linking_$(APP_LINKING_OPT).mk - - -ifeq ($(DISABLE_FRONTEND),yes) -app-tag: -package-install-app: -package-install-extras: -else -app-tag: package-app app.tag -package-install-app: install-app -package-install-extras: install-extras -endif - - - -ifeq ($(ALL_STATIC),yes) - -package-app: static-app -app: PACKAGE_APP = $(STATIC_APP) -app-tag: PACKAGE_APP = $(STATIC_APP) -app.tag: $(STATIC_APP) - - -else ifeq ($(ALL_SHARED),yes) - -package-app: shared-app -app: PACKAGE_APP = $(SHARED_APP) -app-tag: PACKAGE_APP = $(SHARED_APP) -app.tag: $(SHARED_APP) - - -else - -package-app: default-app -app: PACKAGE_APP = $(DEFAULT_APP) -app-tag: PACKAGE_APP = $(DEFAULT_APP) -app.tag: $(DEFAULT_APP) - -endif - - - -ifeq ($(CUSTOM_INSTALL_HEADERS),yes) - -install-headers:install-headers-custom - -else - -install-headers:install-headers-default - -endif +include $(PROJECT_DIR)/sofort/core/_flavor/flavor_install_headers_$(INSTALL_HEADERS_OPT).mk 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 diff --git a/sofort/core/modern.m4 b/sofort/core/modern.m4 new file mode 100644 index 0000000..ad75ca9 --- /dev/null +++ b/sofort/core/modern.m4 @@ -0,0 +1,117 @@ +dnl modern.m4: a modern and simple framework for using the m4 macro language +dnl +dnl This file is covered by COPYING.SOFORT. +dnl +dnl 1) make all standard m4 builtins m4_ prefixed. +dnl 2) set the left-bracket and right-bracket symbols the begin-quote and end-quote strings. +dnl 3) make a single underscore symbol the equivalent of the standard dnl builtin. +dnl 4) provide the m4_toupper(), m4_tolower(), and m4_pathvar() macros. +dnl 5) provide the m4_srclist() and m4_srcitem() macros. +dnl 6) provide the m4_fillerdots(), m4_fillerdash(), and m4_fillerline() macros. +dnl 7) provide the m4_whitespace() and m4_spacealign() macros. +dnl 8) provide the m4_alignlen(), m4_leftalign(), and m4_rightalign() macros. +dnl 9) provide the m4_tab(), m4_tabtab(), and m4_tabtabtab() macros. +dnl +divert(-1) + +define(m4_changecom,defn(`changecom')) +define(m4_changequote,defn(`changequote')) +define(m4_decr,defn(`decr')) +define(m4_define,defn(`define')) +define(m4_defn,defn(`defn')) +define(m4_divert,defn(`divert')) +define(m4_divnum,defn(`divnum')) +define(m4_dnl,defn(`dnl')) +define(m4_dumpdef,defn(`dumpdef')) +define(m4_errprint,defn(`errprint')) +define(m4_eval,defn(`eval')) +define(m4_ifdef,defn(`ifdef')) +define(m4_ifelse,defn(`ifelse')) +define(m4_include,defn(`include')) +define(m4_incr,defn(`incr')) +define(m4_index,defn(`index')) +define(m4_len,defn(`len')) +define(m4_m4exit,defn(`m4exit')) +define(m4_m4wrap,defn(`m4wrap')) +define(m4_maketemp,defn(`maketemp')) +define(m4_mkstemp,defn(`mkstemp')) +define(m4_popdef,defn(`popdef')) +define(m4_pushdef,defn(`pushdef')) +define(m4_shift,defn(`shift')) +define(m4_sinclude,defn(`sinclude')) +define(m4_substr,defn(`substr')) +define(m4_syscmd,defn(`syscmd')) +define(m4_sysval,defn(`sysval')) +define(m4_traceoff,defn(`traceoff')) +define(m4_traceon,defn(`traceon')) +define(m4_translit,defn(`translit')) +define(m4_undefine,defn(`undefine')) +define(m4_undivert,defn(`undivert')) + +m4_changequote([,]) + +m4_undefine([changecom]) +m4_undefine([changequote]) +m4_undefine([decr]) +m4_undefine([define]) +m4_undefine([defn]) +m4_undefine([divert]) +m4_undefine([divnum]) +m4_undefine([dnl]) +m4_undefine([dumpdef]) +m4_undefine([errprint]) +m4_undefine([eval]) +m4_undefine([ifdef]) +m4_undefine([ifelse]) +m4_undefine([include]) +m4_undefine([incr]) +m4_undefine([index]) +m4_undefine([len]) +m4_undefine([m4exit]) +m4_undefine([m4wrap]) +m4_undefine([maketemp]) +m4_undefine([mkstemp]) +m4_undefine([popdef]) +m4_undefine([pushdef]) +m4_undefine([shift]) +m4_undefine([sinclude]) +m4_undefine([substr]) +m4_undefine([syscmd]) +m4_undefine([sysval]) +m4_undefine([traceoff]) +m4_undefine([traceon]) +m4_undefine([translit]) +m4_undefine([undefine]) +m4_undefine([undivert]) + +m4_define([_],m4_defn([m4_dnl])) + +m4_define([m4_toupper],[m4_translit([[$1]],[[abcdefghijklmnopqrstuvwxyz]],[[ABCDEFGHIJKLMNOPQRSTUVWXYZ]])]) +m4_define([m4_tolower],[m4_translit([[$1]],[[ABCDEFGHIJKLMNOPQRSTUVWXYZ]],[[abcdefghijklmnopqrstuvwxyz]])]) +m4_define([m4_pathvar],[m4_translit(m4_toupper([[$1]]),[/-],[__])]) + +m4_define([m4_srclist],[[$1] = \]) +m4_define([m4_srcitem],[m4_tab[$1] \]) + +m4_define([m4_fillerdots],[................................]) +m4_define([m4_fillerdash],[--------------------------------]) +m4_define([m4_fillerline],[m4_fillerdots[]m4_fillerdots[]m4_fillerdots[]]) + +m4_define([m4_whitespace],[m4_translit(m4_fillerdots,[[.]],[[ ]])]) +m4_define([m4_spacealign],[m4_translit(m4_fillerline,[[.]],[[ ]])]) + +m4_define([m4_alignlen],[m4_eval([$1]-m4_len([$2]))]) +m4_define([m4_leftalign],[m4_substr(m4_spacealign,0,m4_alignlen([$1],[$2]))[$2]]) +m4_define([m4_rightalign],[[$2]m4_substr(m4_spacealign,0,m4_alignlen([$1],[$2]))]) + + +m4_define([m4_tab],_ + [$1])) + +m4_define([m4_tabtab],_ + [$1]) + +m4_define([m4_tabtabtab],_ + [$1]) + +m4_divert(0)_ diff --git a/sofort/core/pkgconf.mk b/sofort/core/pkgconf.mk index 0edc395..5ada069 100644 --- a/sofort/core/pkgconf.mk +++ b/sofort/core/pkgconf.mk @@ -1,14 +1,10 @@ # pkgconf.mk: rules for pkgconf manifest generation. # this file is covered by COPYING.SOFORT. -ifeq ($(PKGCONF),no) - -install-pkgconf: - -else - PKGCONF_VERSION = $(VER_MAJOR).$(VER_MINOR).$(VER_PATCH) +.pkgconf: + build/$(PACKAGE).pc: .pkgconf dirs.tag build/$(PACKAGE).pc: @@ -41,5 +37,3 @@ install-shared: install-pkgconf install-static: install-pkgconf .PHONY: .pkgconf install-pkgconf - -endif diff --git a/sofort/core/version.mk b/sofort/core/version.mk index eb6c2f2..ad693ab 100644 --- a/sofort/core/version.mk +++ b/sofort/core/version.mk @@ -7,60 +7,4 @@ CFLAGS_VERSION += -D$(VER_NAMESPACE)_TAG_VER_MAJOR=$(VER_MAJOR) CFLAGS_VERSION += -D$(VER_NAMESPACE)_TAG_VER_MINOR=$(VER_MINOR) CFLAGS_VERSION += -D$(VER_NAMESPACE)_TAG_VER_PATCH=$(VER_PATCH) -ifeq ($(AVOID_VERSION),yes) - -VER_XYZ = -VER_SONAME = - -package-shared-soname: -package-shared-solink: -package-install-soname: -package-install-solink: - -else - -VER_XYZ = .$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH) -VER_SONAME = .$(VER_MAJOR) - -package-shared-soname: shared-soname -package-shared-solink: shared-solink -package-install-soname: install-soname -package-install-solink: install-solink - - - -# libfoo.so (common) -install-solink: install-lib - rm -f $(SHARED_SOLINK).tmp - ln -s $(DSO_VER) $(SHARED_SOLINK).tmp - mv $(SHARED_SOLINK).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SOLINK) - -$(SHARED_SOLINK): $(SHARED_LIB) - rm -f $@.tmp - ln -s $(DSO_VER) $@.tmp - mv $@.tmp $@ - -# libfoo.so.x (symlink) -ifeq ($(OS_SONAME),symlink) -$(SHARED_SONAME): $(SHARED_LIB) - rm -f $@.tmp - ln -s $(DSO_VER) $@.tmp - mv $@.tmp $@ - -install-soname: install-lib - rm -f $(SHARED_SONAME).tmp - ln -s $(DSO_VER) $(SHARED_SONAME).tmp - mv $(SHARED_SONAME).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) -endif - - -# libfoo.so.x (copy) -ifeq ($(OS_SONAME),copy) -install-soname: install-lib - cp $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) - -$(SHARED_SONAME): $(SHARED_LIB) - cp $(SHARED_LIB) $(SHARED_SONAME) -endif - -endif +include $(PROJECT_DIR)/sofort/core/_version/version_$(VERSION_OPT).mk |