]> rtime.felk.cvut.cz Git - omk.git/commitdiff
Update of vxWorks rules.
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 19 Oct 2006 23:09:00 +0000 (23:09 +0000)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 19 Oct 2006 23:09:00 +0000 (23:09 +0000)
Library compilation seems to be working, in .vxe compilation are still some
problems.

darcs-hash:20061019230957-f2ef6-4bc8247d852bb701a7aa9dc15f6d261deef3c6a4.gz

snippets/vxworks

index 7187bf3039a564ffaa6a31e9dcfa9dd9f8930664..49469ec4d84c024bdfdd114df74ab56abf78888f 100644 (file)
@@ -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)))