From: Michal Sojka Date: Thu, 19 Oct 2006 23:09:00 +0000 (+0000) Subject: Update of vxWorks rules. X-Git-Tag: v0.1~166 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/commitdiff_plain/94cd98f3ca4ded774b85cfb3e8754902d6ed6735 Update of vxWorks rules. Library compilation seems to be working, in .vxe compilation are still some problems. darcs-hash:20061019230957-f2ef6-4bc8247d852bb701a7aa9dc15f6d261deef3c6a4.gz --- diff --git a/snippets/vxworks b/snippets/vxworks index 7187bf3..49469ec 100644 --- a/snippets/vxworks +++ b/snippets/vxworks @@ -1,3 +1,16 @@ +# Version for vxWorks builds. +# +# +# input variables +# lib_LIBRARIES .. list of the user-space libraries +# include_HEADERS .. list of the user-space public header files +# nobase_include_HEADERS .. public headers copied even with directory part +# renamed_include_HEADERS .. public headers copied to the different target name +# bin_PROGRAMS .. list of the require binary programs +# utils_PROGRAMS .. list of the development utility programs +# xxx_SOURCES .. list of specific target sources +# INCLUDES .. additional include directories and defines for user-space + # Some support to serialize some targets for parallel make ifneq ($(OMK_SERIALIZE_INCLUDED),y) include-pass: $(check-dir) @@ -14,7 +27,17 @@ endif BUILD_ROOT=$(USER_OBJS_DIR) export BUILD_ROOT -#OBJ_DIR - mozna taky nejak nastavit + +CPPFLAGS += -I $(USER_INCLUDE_DIR) + +ADDED_CFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -DOMK_FOR_VXWORKS -DOMK_FOR_USER + +ADDED_C++FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -DOMK_FOR_VXWORKS -DOMK_FOR_USER + +export ADDED_CFLAGS ADDED_C++FLAGS + USER_SOURCES2OBJS = .o/.c .o/.cc .o/.cxx .o/.o @@ -38,11 +61,16 @@ $(1)_OBJS := $$(sort $$($(1)_OBJS:%/=%)) USER_OBJS += $$($(1)_OBJS) USER_SOURCES += $$($(1)_SOURCES) -$(2)/$(1): $$($(1)_OBJS) +# I hope dependedcies are solved in vxWorks makefiles +.PHONY: $(2)/$(1).vxe +$(2)/$(1).vxe: @$(QUIET_CMD_ECHO) " LINK $$@" @echo 'EXE = $(1).vxe' > Makefile.vxe.$(1); \ - echo 'OBJS = $(1)_OBJS' >> Makefile.vxe.$(1); \ + echo 'OBJS = $$($(1)_OBJS)' >> Makefile.vxe.$(1); \ echo 'VXE_DIR = $(2)' >> Makefile.vxe.$(1); \ + echo 'ADDED_CFLAGS += -L$(USER_LIB_DIR)' >> Makefile.vxe.$(1); \ + echo 'ADDED_C++FLAGS += -L$(USER_LIB_DIR)' >> Makefile.vxe.$(1); \ + echo 'ADDED_LIBS = $(lib_LOADLIBES) $$($(1)_LIBS)' >> Makefile.vxe.$(1); \ echo 'include $$$$(WIND_USR)/make/rules.rtp' >> Makefile.vxe.$(1); \ $(WRENV) -p $(WRPACKAGE) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) -f Makefile.vxe.$(1) # $(Q) $$(shell if [ -z "$$(filter %.cc,$$($(1)_SOURCES:%.cxx=%.cc))" ] ; then echo $$(CC) ; else echo $$(CXX) ; fi) \ @@ -72,6 +100,8 @@ $(1)_OBJS := $$(sort $$($(1)_OBJS:%/=%)) USER_OBJS += $$($(1)_OBJS) USER_SOURCES += $$($(1)_SOURCES) +# I hope dependedcies are solved in vxWorks makefiles +.PHONY: $(USER_LIB_DIR)/lib$(1).a $(USER_LIB_DIR)/lib$(1).a: #$$($(1)_OBJS) @$(QUIET_CMD_ECHO) " LIB $$@" @echo 'LIB_BASE_NAME = $(1)' > Makefile.lib.$(1); \ @@ -95,12 +125,23 @@ $(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib)))) $(foreach lib,$(shared_LIBRARIES),$(eval $(call SOLIB_template,$(lib)))) --include $(USER_OBJS_DIR)/*.d +OTHER_PASSES = clean install include-pass +$(eval $(call omk_pass_template,$(OTHER_PASSES),$(USER_OBJS_DIR),,always)) + +include-pass-local: + $(call include-pass-template,$(USER_INCLUDE_DIR),include) library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS)) \ $(lib_LIBRARIES:%=$(USER_LIB_DIR)/lib%.a) $(shared_LIBRARIES:%=$(USER_LIB_DIR)/lib%.$(SOLIB_EXT)) -binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%) +binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.vxe) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%.vxe) + +clean-local: + @echo Cleaning in $(USER_OBJS_DIR) + @rm -f $(USER_OBJS_DIR)/*.o $(USER_OBJS_DIR)/*.lo \ + $(USER_OBJS_DIR)/*.d \ + $(USER_OBJS_DIR)/*.map \ + $(LOCAL_CONFIG_H:%=$(USER_OBJS_DIR)/%) $(eval $(call omk_pass_template, library-pass,$(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(lib_LIBRARIES)$(shared_LIBRARIES))) $(eval $(call omk_pass_template, binary-pass, $(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)$(utils_PROGRAMS)))