]> rtime.felk.cvut.cz Git - omk.git/commitdiff
Added variable test_PROGRAMS.
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 24 Oct 2007 06:59:00 +0000 (06:59 +0000)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 24 Oct 2007 06:59:00 +0000 (06:59 +0000)
darcs-hash:20071024065943-f2ef6-7304f6216fb7d00f93b4c24aea1400adfa288c25.gz

14 files changed:
doc/omk-manual.texinfo
snippets/linux
snippets/linux-setup
snippets/rtems
snippets/rtems-setup
snippets/sdcc
snippets/sdcc-setup
snippets/sources-list
snippets/sysless
snippets/sysless-setup
snippets/vxworks
snippets/vxworks-setup
tests/programs/Makefile.omk-test_PROGRAMS [new file with mode: 0644]
tests/programs/runtest-test_PROGRAMS [new file with mode: 0755]

index 2e161fb922227681a91a29abe6e369e810bff41a..64193fc8507d4040b3b14976af2fe856b3445d28 100644 (file)
@@ -305,11 +305,26 @@ source @file{test.c}.
 
 @noindent The variables are:
 
+@anchor{bin_PROGRAMS}
 @defvar bin_PROGRAMS
   Contains a list of names (whitespace separated) of programs to be
   compiled in this directory.
 @end defvar
 
+@defvar test_PROGRAMS
+  Almost the same as @ref{bin_PROGRAMS}, but resulting binaries are
+  stored in @file{bin-tests} directory instead of @file{bin}. This
+  variable is intended for various test programs not to be mixed with
+  the final product.
+@end defvar
+
+@defvar utils_PROGRAMS
+  Almost the same as @ref{bin_PROGRAMS}, but resulting binaries are
+  stored in @file{bin-utils} directory instead of @file{bin}. This
+  variable is intended for various development utilities not to be mixed
+  with the final product.
+@end defvar
+
 @defvar xxx_SOURCES
   For every program name @var{xxx} in @code{bin_PROGRAMS}, this variable
   contains a list of sources that are needed to compile the
index 84c23b5d60895c08aa8e52a1916f395550ddb750..f0cc30d15c0bbd4e431958221913906ed3c09c37 100644 (file)
@@ -13,6 +13,7 @@
 # rtlinux_HEADERS  .. list of the RT-Linux kernel-space public header files
 # bin_PROGRAMS     .. list of the require binary programs
 # utils_PROGRAMS   .. list of the development utility programs
+# test_PROGRAMS    .. list of the testing programs
 # kernel_MODULES   .. list of the kernel side modules/applications
 # rtlinux_MODULES  .. list of RT-Linux the kernel side modules/applications
 # xxx_SOURCES      .. list of specific target sources
@@ -258,7 +259,7 @@ endef
 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)/%$(EXE_SUFFIX)) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%$(EXE_SUFFIX))
+binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%$(EXE_SUFFIX)) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%$(EXE_SUFFIX)) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%$(EXE_SUFFIX))
 
 # Special rules for CMETRIC generated headers
 
@@ -277,6 +278,8 @@ GEN_HEADERS+=$(filter %.h,$(USER_IDLS:%.idl=%.h))
 
 $(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR),$(EXE_SUFFIX))))
 
+$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(EXE_SUFFIX))))
+
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(EXE_SUFFIX))))
 
 $(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib))))
@@ -552,7 +555,7 @@ kernel-modpost-pass:
        fi
 
 $(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)))
+$(eval $(call omk_pass_template, binary-pass, $(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)$(utils_PROGRAMS)$(test_PROGRAMS)))
 
 OTHER_PASSES = clean install include-pass
 $(eval $(call omk_pass_template,$(OTHER_PASSES),$(USER_OBJS_DIR),,always))
@@ -566,6 +569,7 @@ check-dir:
        @$(call mkdir_def,$(KERN_LIB_DIR))
        @$(call mkdir_def,$(USER_BIN_DIR))
        @$(call mkdir_def,$(USER_UTILS_DIR))
+       @$(call mkdir_def,$(USER_TESTS_DIR))
        @$(call mkdir_def,$(KERN_MODULES_DIR))
        @$(call mkdir_def,$(KERN_MODPOST_DIR))
 
index 516ce20b2ba9eea55fb4d04b59cdac00371f8424..42aa1dd3076c56c48f2c3cd01acc3122791b5901 100644 (file)
@@ -21,6 +21,7 @@ KERN_MODPOST_DIR := $(BUILD_DIR)/kern-modpost
 USER_INCLUDE_DIR := $(OCERA_USER_INCLUDES_DIR)
 USER_LIB_DIR     := $(OCERA_USER_LIBRARIES_DIR)
 USER_UTILS_DIR   := $(TARGET_DIR)/usr/bin
+USER_TESTS_DIR   := $(TARGET_DIR)/usr/bin
 USER_BIN_DIR     := $(TARGET_DIR)/usr/bin
 USER_BUILD_DIR   := $(BUILD_DIR)/user/$(GROUP_DIR_NAME)
 #LINUX_DIR        := $(OCERA_DIR)/kernel/linux
@@ -38,6 +39,7 @@ KERN_MODPOST_DIR := $(MAKERULES_DIR)/$(BUILD_DIR_NAME)/kern-modpost
 USER_INCLUDE_DIR := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/include
 USER_LIB_DIR     := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/lib
 USER_UTILS_DIR   := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin-utils
+USER_TESTS_DIR   := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin-tests
 USER_BIN_DIR     := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin
 USER_BUILD_DIR   := $(MAKERULES_DIR)/$(BUILD_DIR_NAME)/user
 
index c79e565a567572e399244cbc62f032fd6e300173..0f5c497582582bd437a045dcb06dc7e641789ce8 100644 (file)
@@ -8,6 +8,7 @@
 # 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
+# test_PROGRAMS    .. list of the test programs
 # xxx_SOURCES      .. list of specific target sources
 # INCLUDES         .. additional include directories and defines for user-space
 # tar_EMBEDFILES   .. list of tars with embedded files
@@ -235,7 +236,7 @@ endef
 library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS)) \
                    $(lib_LIBRARIES:%=$(USER_LIB_DIR)/lib%.a) $(shared_LIBRARIES:%=$(USER_LIB_DIR)/lib%.so)
 
-binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%)
+binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/% $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%)
 
 # Special rules for CMETRIC generated headers
 
@@ -252,6 +253,8 @@ GEN_HEADERS+=$(cmetric_include_HEADERS:%=$(USER_INCLUDE_DIR)/%)
 
 $(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR))))
 
+$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR))))
+
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR))))
 
 $(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib))))
@@ -267,7 +270,7 @@ endif
 
 $(eval $(call omk_pass_template, include-pass,$(USER_OBJS_DIR),,$(include_HEADERS)$(nobase_include_HEADERS)$(renamed_include_HEADERS)$(config_include_HEADERS)$(LOCAL_CONFIG_H)))
 $(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)))
+$(eval $(call omk_pass_template, binary-pass, $(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)$(utils_PROGRAMS)$(test_PROGRAMS)))
 
 $(eval $(call omk_pass_template,clean,$(USER_OBJS_DIR),,always))
 
@@ -276,6 +279,7 @@ check-dir:
        @$(call mkdir_def,$(USER_LIB_DIR))
        @$(call mkdir_def,$(USER_BIN_DIR))
        @$(call mkdir_def,$(USER_UTILS_DIR))
+       @$(call mkdir_def,$(USER_TESTS_DIR))
 
 include-pass-local:
        $(call include-pass-template,$(USER_INCLUDE_DIR),include)
index 841425a3578c7a6a48bac85d4f2a044bd6fad987..21d9ba45ad677ae46a99a7b4046ad5c4e9e8c0fc 100644 (file)
@@ -14,6 +14,7 @@ GROUP_DIR_NAME =
 USER_INCLUDE_DIR := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/include
 USER_LIB_DIR     := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/lib
 USER_UTILS_DIR   := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin-utils
+USER_TESTS_DIR   := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin-tests
 USER_BIN_DIR     := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin
 USER_BUILD_DIR   := $(MAKERULES_DIR)/$(BUILD_DIR_NAME)/user
 
index b9ff2eca0ef9581220a6854bf37f0450e42654d0..4e6b0e7df36d600c615f8ffaa6d2735221789e64 100644 (file)
@@ -1,6 +1,7 @@
 #                   Version for SDCC builds.
 #
 # bin_PROGRAMS     .. list of the require binary programs
+# test_PROGRAMS    .. list of the test programs
 # include_HEADERS  .. list of the user-space public header files
 # lib_LIBRARIES    .. list of the user-space libraries
 # lib_LDSCRIPTS    .. list of LD scripts that should be copied to the lib direcotry
@@ -171,9 +172,11 @@ endef
 ifneq ($(link_VARIANTS),)
 $(foreach prog,$(bin_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(link)))))
 $(foreach prog,$(utils_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR),$(link)))))
+$(foreach prog,$(test_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(link)))))
 else
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR))))
 $(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR))))
+$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR))))
 endif
 
 $(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib))))
@@ -210,16 +213,18 @@ library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS))
 ifneq ($(link_VARIANTS),)
 binary-pass-local:  $(foreach link,$(link_VARIANTS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link)) \
                    $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link).$(of))))
+binary-pass-local:  $(foreach link,$(link_VARIANTS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link)) \
+                   $(foreach of,$(OUTPUT_FORMATS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link).$(of))))
 else
 binary-pass-local:  $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) \
                    $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.$(of)))
+binary-pass-local:  $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%) \
+                   $(foreach of,$(OUTPUT_FORMATS),$(test_PROGRAMS:%=$(USER_TESTS_DIR)/%.$(of)))
 endif
 
 
 library-pass-local: $(lib_LIBRARIES:%=$(USER_LIB_DIR)/$(LIB_PREF)%$(LIB_EXT)) $(shared_LIBRARIES:%=$(USER_LIB_DIR)/$(LIB_PREF)%.so)
 
-binary-pass-local: $(foreach link,$(link_VARIANTS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link)) $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link).$(of))))
-
 utils-pass-local: $(foreach link,$(link_VARIANTS),$(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%-$(link)) $(foreach of,$(OUTPUT_FORMATS),$(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%-$(link).$(of))))
 
 -include $(USER_OBJS_DIR)/*.d
@@ -257,11 +262,11 @@ run-$(1):
        $(Q) $(RUN_CMD-$(1))
 endef
 
-$(foreach link,$(link_VARIANTS),$(foreach prog,$(bin_PROGRAMS),$(eval $(call LOAD_PROGRAM_template,$(prog),$(USER_BIN_DIR),$(link)))))
+$(foreach link,$(link_VARIANTS),$(foreach prog,$(bin_PROGRAMS) $(test_PROGRAMS),$(eval $(call LOAD_PROGRAM_template,$(prog),$(USER_BIN_DIR),$(link)))))
 $(foreach link,$(link_VARIANTS),$(eval $(call LOAD_RUN_VARIANT_template,$(link))))
 
 .PHONY: load run
-load: $(addprefix load-,$(firstword $(bin_PROGRAMS))-$(firstword $(link_VARIANTS)))
+load: $(addprefix load-,$(firstword $(bin_PROGRAMS) $(test_PROGRAMS))-$(firstword $(link_VARIANTS)))
 
 run: run-$(firstword $(link_VARIANTS))
 
@@ -271,7 +276,7 @@ OTHER_PASSES = dep clean install
 
 $(eval $(call omk_pass_template, include-pass, $(LOCAL_BUILD_DIR),,$(include_HEADERS)$(nobase_include_HEADERS)$(renamed_include_HEADERS)$(lib_LDSCRIPTS)$(config_include_HEADERS)$(LOCAL_CONFIG_H)))
 $(eval $(call omk_pass_template, library-pass, $(LOCAL_BUILD_DIR),USER_RULE_TEMPLATES=y,$(lib_LIBRARIES)$(shared_LIBRARIES)$(lib_obj_SOURCES)))
-$(eval $(call omk_pass_template, binary-pass,  $(LOCAL_BUILD_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)))
+$(eval $(call omk_pass_template, binary-pass,  $(LOCAL_BUILD_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)$(test_PROGRAMS)))
 $(eval $(call omk_pass_template, utils-pass,   $(LOCAL_BUILD_DIR),USER_RULE_TEMPLATES=y,$(utils_PROGRAMS)))
 
 
@@ -311,6 +316,7 @@ check-dir:
        @$(call mkdir_def,$(USER_LIB_DIR))
        @$(call mkdir_def,$(USER_BIN_DIR))
        @$(call mkdir_def,$(USER_UTILS_DIR))
+       @$(call mkdir_def,$(USER_TESTS_DIR))
 
 # Which passes to pass
 default: include-pass library-pass binary-pass utils-pass
index a898b2863d9c857010d8885578017301c4624f15..9b01e7c6ba40f59c2c8bb46dec439ebeec6d82ac 100644 (file)
@@ -38,6 +38,7 @@ USER_COMPILED_DIR_NAME=$(MAKERULES_DIR)/$(COMPILED_DIR_NAME)
 USER_INCLUDE_DIR = $(USER_COMPILED_DIR_NAME)/include
 USER_LIB_DIR     = $(USER_COMPILED_DIR_NAME)/lib
 USER_UTILS_DIR   = $(USER_COMPILED_DIR_NAME)/bin-utils
+USER_TESTS_DIR   = $(USER_COMPILED_DIR_NAME)/bin-tests
 USER_BIN_DIR     = $(USER_COMPILED_DIR_NAME)/bin
 USER_OBJS_DIR    = $(LOCAL_BUILD_DIR)
 
index ec2943f8fdf3874e229c5ae1509aa7c2e90aeed0..d782bd38ad86509c21ae483f90a41d3eea198a2f 100644 (file)
@@ -41,7 +41,7 @@ sources-list-pass-local:
        @$(foreach ch,$(config_include_HEADERS), \
          echo "$(USER_INCLUDE_DIR:$(MAKERULES_DIR)/$(addsuffix /,$(SOURCES_LIST_DIR))%=%)/$(ch)" >> "$(SOURCES_LIST).tmp";)
        @$(foreach h,$(renamed_include_HEADERS),echo "$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%)/$(h)"|sed -e 's/\(.*\)->.*/\1/' >> "$(SOURCES_LIST).tmp";)
-       @$(foreach bin,$(lib_LIBRARIES) $(shared_LIBRARIES) $(bin_PROGRAMS) $(utils_PROGRAMS) \
+       @$(foreach bin,$(lib_LIBRARIES) $(shared_LIBRARIES) $(bin_PROGRAMS) $(test_PROGRAMS) $(utils_PROGRAMS) \
          $(kernel_LIBRARIES) $(rtlinux_LIBRARIES) $(kernel_MODULES),\
          $(foreach src,$(filter-out %.o,$($(bin)_SOURCES)),echo "$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%)/$(src)" >> "$(SOURCES_LIST).tmp";))
 
index ed55141526cc38c771d6f0623d861727527bbe16..e2ba5ff07d773c4ef92619770ef2e107c2784847 100644 (file)
@@ -2,6 +2,7 @@
 #
 #
 # bin_PROGRAMS     .. list of the require binary programs
+# test_PROGRAMS    .. list of the test programs
 # include_HEADERS  .. list of the user-space public header files
 # lib_LIBRARIES    .. list of the user-space libraries
 # lib_LDSCRIPTS    .. list of LD scripts that should be copied to the lib direcotry
@@ -65,8 +66,10 @@ GEN_HEADERS+=$(cmetric_include_HEADERS:%=$(USER_INCLUDE_DIR)/%)
 # Generate rules for compilation of programs and libraries
 ifneq ($(link_VARIANTS),)
 $(foreach prog,$(bin_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(link)))))
+$(foreach prog,$(test_PROGRAMS),$(foreach link,$(link_VARIANTS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(link)))))
 else
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR))))
+$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR))))
 endif
 
 $(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib))))
@@ -110,11 +113,11 @@ library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS))
                    $(addprefix $(LIB_DIR)/,$(lib_OBJS))
 
 ifneq ($(link_VARIANTS),)
-binary-pass-local:  $(foreach link,$(link_VARIANTS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link)) \
-                   $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link).$(of))))
+binary-pass-local:  $(foreach link,$(link_VARIANTS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link)) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link)) \
+                   $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%-$(link).$(of)) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%-$(link).$(of))))
 else
-binary-pass-local:  $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) \
-                   $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.$(of)))
+binary-pass-local:  $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%) \
+                   $(foreach of,$(OUTPUT_FORMATS),$(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.$(of)) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%.$(of)))
 endif
 
 endif # TARGET_RULE_TEMPLATES
@@ -182,7 +185,7 @@ endef
 define LOAD_RUN_VARIANT_template
 .PHONY: load-$(1) run-$(1)
 
-load-$(1): load-$(firstword $(bin_PROGRAMS))-$(1)
+load-$(1): load-$(firstword $(bin_PROGRAMS) $(test_PROGRAMS))-$(1)
 
 run-$(1):
        @$(QUIET_CMD_ECHO) "  RUN     $(1)"
@@ -192,10 +195,11 @@ run-$(1):
 endef
 
 $(foreach link,$(link_VARIANTS),$(foreach prog,$(bin_PROGRAMS),$(eval $(call LOAD_PROGRAM_template,$(prog),$(USER_BIN_DIR),$(link)))))
+$(foreach link,$(link_VARIANTS),$(foreach prog,$(test_PROGRAMS),$(eval $(call LOAD_PROGRAM_template,$(prog),$(USER_TEST_DIR),$(link)))))
 $(foreach link,$(link_VARIANTS),$(eval $(call LOAD_RUN_VARIANT_template,$(link))))
 
 .PHONY: load run
-load: $(addprefix load-,$(firstword $(bin_PROGRAMS))-$(firstword $(link_VARIANTS)))
+load: $(addprefix load-,$(firstword $(bin_PROGRAMS) $(test_PROGRAMS))-$(firstword $(link_VARIANTS)))
 
 run: run-$(firstword $(link_VARIANTS))
 
@@ -207,7 +211,7 @@ OTHER_PASSES = dep clean install
 
 $(eval $(call omk_pass_template, include-pass, $(LOCAL_BUILD_DIR),,$(include_HEADERS)$(nobase_include_HEADERS)$(renamed_include_HEADERS)$(lib_LDSCRIPTS)$(config_include_HEADERS)$(LOCAL_CONFIG_H)))
 $(eval $(call omk_pass_template, library-pass, $(LOCAL_BUILD_DIR),TARGET_RULE_TEMPLATES=y,$(lib_LIBRARIES)$(shared_LIBRARIES)$(lib_obj_SOURCES)))
-$(eval $(call omk_pass_template, binary-pass,  $(LOCAL_BUILD_DIR),TARGET_RULE_TEMPLATES=y,$(bin_PROGRAMS)))
+$(eval $(call omk_pass_template, binary-pass,  $(LOCAL_BUILD_DIR),TARGET_RULE_TEMPLATES=y,$(bin_PROGRAMS) $(test_PROGRAMS)))
 $(eval $(call omk_pass_template, utils-pass,   $(LOCAL_BUILD_DIR),HOST_RULE_TEMPLATES=y,$(utils_PROGRAMS)))
 
 
@@ -236,6 +240,7 @@ check-dir:
        @$(call mkdir_def,$(USER_LIB_DIR))
        @$(call mkdir_def,$(USER_BIN_DIR))
        @$(call mkdir_def,$(USER_UTILS_DIR))
+       @$(call mkdir_def,$(USER_TESTS_DIR))
 
 # Which passes to pass
 default: include-pass library-pass binary-pass utils-pass
index e0b34c6ed1a87431ac2cb37427d6009dd2a59009..a75368c7e08fa70412696ef744cb3f71c7441d40 100644 (file)
@@ -21,6 +21,7 @@ USER_COMPILED_DIR_NAME=$(MAKERULES_DIR)/$(COMPILED_DIR_NAME)
 USER_INCLUDE_DIR = $(USER_COMPILED_DIR_NAME)/include
 USER_LIB_DIR     = $(USER_COMPILED_DIR_NAME)/lib
 USER_UTILS_DIR   = $(USER_COMPILED_DIR_NAME)/bin-utils
+USER_TESTS_DIR   = $(USER_COMPILED_DIR_NAME)/bin-tests
 USER_BIN_DIR     = $(USER_COMPILED_DIR_NAME)/bin
 USER_OBJS_DIR    = $(LOCAL_BUILD_DIR)
 
index e3483ddc654e7bd9e4c5849de2faa91eef9ce4ce..d1f40961fb8c43747fd4c3fcf5b9cc7dda6f2df3 100644 (file)
@@ -7,6 +7,7 @@
 # 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
+# test_PROGRAMS    .. list of the test 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
@@ -128,6 +129,8 @@ endef
 
 $(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR))))
 
+$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR))))
+
 $(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR))))
 
 $(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib))))
@@ -143,7 +146,7 @@ include-pass-local:
 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)/%.vxe) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%.vxe)
+binary-pass-local: $(bin_PROGRAMS:%=$(USER_BIN_DIR)/%.vxe) $(test_PROGRAMS:%=$(USER_TESTS_DIR)/%.vxe) $(utils_PROGRAMS:%=$(USER_UTILS_DIR)/%.vxe)
 
 clean-local:
        @echo Cleaning in $(USER_OBJS_DIR)
@@ -153,7 +156,7 @@ clean-local:
               $(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)))
+$(eval $(call omk_pass_template, binary-pass, $(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)$(utils_PROGRAMS)$(test_PROGRAMS)))
 
 check-dir:
        @$(call mkdir_def,$(USER_BUILD_DIR))
@@ -161,6 +164,7 @@ check-dir:
        @$(call mkdir_def,$(USER_LIB_DIR))
        @$(call mkdir_def,$(USER_BIN_DIR))
        @$(call mkdir_def,$(USER_UTILS_DIR))
+       @$(call mkdir_def,$(USER_TESTS_DIR))
 
 
 default: include-pass library-pass binary-pass
index 817974bf7715fadc744993cdeac64c6bfd0520dd..cb65afd18289014980b4559fe076cc3e026aa1a6 100644 (file)
@@ -23,6 +23,7 @@ GROUP_DIR_NAME =
 USER_INCLUDE_DIR := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/include
 USER_LIB_DIR     := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/lib
 USER_UTILS_DIR   := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin-utils
+USER_TESTS_DIR   := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin-tests
 USER_BIN_DIR     := $(MAKERULES_DIR)/$(COMPILED_DIR_NAME)/bin
 USER_BUILD_DIR   := $(MAKERULES_DIR)/$(BUILD_DIR_NAME)/rtp
 
diff --git a/tests/programs/Makefile.omk-test_PROGRAMS b/tests/programs/Makefile.omk-test_PROGRAMS
new file mode 100644 (file)
index 0000000..619393b
--- /dev/null
@@ -0,0 +1,3 @@
+test_PROGRAMS = test
+
+test_SOURCES = test.c
\ No newline at end of file
diff --git a/tests/programs/runtest-test_PROGRAMS b/tests/programs/runtest-test_PROGRAMS
new file mode 100755 (executable)
index 0000000..c99de3a
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+source ../functions.sh
+
+touch config.omk-default
+rm -rf _compiled
+make MAKEFILE_OMK=Makefile.omk-test_PROGRAMS || canttest
+FOUND=`find _compiled -wholename '*/bin-tests/test*'`
+echo "Found: $FOUND"
+[ -n "$FOUND" ] || error "No test program created"