Note that handling in source files in subdirectories has changed. See
previous commit for details.
Now, all tests pass.
$(filter %.c,$($(1)_IDL:%.idl=%.c))
TARGET_SOURCES = $($(1)_SOURCES) $(TARGET_GEN_SOURCES)
TARGET_SOURCES_ABS = $($(1)_SOURCES:%=$(SOURCES_DIR)/%) $(TARGET_GEN_SOURCES)
$(filter %.c,$($(1)_IDL:%.idl=%.c))
TARGET_SOURCES = $($(1)_SOURCES) $(TARGET_GEN_SOURCES)
TARGET_SOURCES_ABS = $($(1)_SOURCES:%=$(SOURCES_DIR)/%) $(TARGET_GEN_SOURCES)
-TARGET_OBJS = $(sort $(addsuffix .o,$(basename $(TARGET_SOURCES))))
-TARGET_LOBJS = $(sort $(addsuffix .lo,$(basename $(TARGET_SOURCES))))
+TARGET_OBJS = $(sort $(addsuffix .o,$(basename $(notdir $(TARGET_SOURCES)))))
+TARGET_LOBJS = $(sort $(addsuffix .lo,$(basename $(notdir $(TARGET_SOURCES)))))
TARGET_IDLS = $($(1)_SERVER_IDL) $($(1)_CLIENT_IDL) $($(1)_IDL)
LINK_WITH_CXX = $(filter %.cc,$(TARGET_SOURCES))$(filter %.cxx,$(TARGET_SOURCES))$$(filter %.cpp,$(TARGET_SOURCES))
TARGET_IDLS = $($(1)_SERVER_IDL) $($(1)_CLIENT_IDL) $($(1)_IDL)
LINK_WITH_CXX = $(filter %.cc,$(TARGET_SOURCES))$(filter %.cxx,$(TARGET_SOURCES))$$(filter %.cpp,$(TARGET_SOURCES))
EOF
needs_valid_CC
WVPASS make
EOF
needs_valid_CC
WVPASS make
-WVPASS test -f _compiled/lib/libmylib.a
+case $OMK_RULES in
+ linux) WVPASS test -f _compiled/lib/libmylib.a ;;
+esac
case $OMK_RULES in
linux|sysless)
case $OMK_RULES in
linux|sysless)
-touch config.omk-default
+cat > 'Makefile.omk' <<EOF
+bin_PROGRAMS = x
+shared_LIBRARIES = x
+x_SOURCES = a.c dir1/b.c dir2/dir3/c.c
+EOF
+
+
-cp ../Makefile ../Makefile.omk .
+cp ../Makefile ../Makefile.omk .
mkdir -p dir1 dir2/dir3
touch dir1/b.c dir2/dir3/c.c
mkdir -p dir1 dir2/dir3
touch dir1/b.c dir2/dir3/c.c
-echo 'void main() {}' > a.c
-
-make CC=cc
-
-find ../_build -type d -name dir3 || error "dir3 not found"
+echo 'int main() { return 0; }' > a.c
+++ /dev/null
-cat > 'Makefile.omk' <<EOF
-bin_PROGRAMS = x
-shared_LIBRARIES = x
-x_SOURCES = a.c dir1/b.c dir2/dir3/c.c
-EOF