Makefile - Fix mtest target (and clean up utest targets)
[tpg/acess2.git] / Usermode / Libraries / Makefile.tpl
index 0f6253c..5c796c3 100644 (file)
@@ -10,7 +10,8 @@ ifeq ($(ARCH),native)
  LDFLAGS := $(LDFLAGS:-lc=-lc_acess)
 endif
 
-ifneq ($(lastword $(subst -, ,$(basename $(LD)))),ld)
+_LD_CMD := $(lastword $(subst -, ,$(firstword $(LD))))
+ifneq ($(_LD_CMD),ld)
   LDFLAGS := $(subst -soname ,-Wl$(comma)-soname$(comma),$(LDFLAGS))
   LDFLAGS := $(subst -Map ,-Wl$(comma)-Map$(comma),$(LDFLAGS))
   LDFLAGS := $(LDFLAGS:-x=-Wl,-x)
@@ -41,8 +42,9 @@ all: _libs $(_BIN) $(_XBIN)
 
 .PHONY: _libs
 
+.PRECIOUS: .no
 
-HEADERS := $(patsubst include_exp/%,../../include/%,$(shell find include_exp/ -name \*.h))
+HEADERS := $(patsubst include_exp/%,../../include/%,$(shell find include_exp/ -name \*.h 2>/dev/null))
 _libs: $(HEADERS)
 
 ../../include/%: include_exp/%
@@ -57,11 +59,12 @@ generate_exp: $(UTESTS:%=EXP_%.txt)
        @echo > /dev/null
 
 utest-build: $(UTESTS:%=TEST_%)
+       @echo > /dev/null
 
 utest-run: $(UTESTS:%=runtest-%)
        @echo > /dev/null
 
-$(UTESTS:%=runtest-%): runtest-%: TEST_%
+$(UTESTS:%=runtest-%): runtest-%: TEST_% EXP_%.txt
        ./TEST_$* | diff EXP_$*.txt -
 
 clean:
@@ -80,7 +83,7 @@ endif
 #      for f in $(INCFILES); do ln -s $f $(ACESSDIR)/include/$f; done
 #endif
 
-$(_BIN): $(OBJ) $(_LIBS)
+$(_BIN): $(OBJ)
        @mkdir -p $(dir $(_BIN))
        @echo [LD] -o $(BIN) $(OBJ)
        $V$(LD) $(LDFLAGS) -o $(_BIN) $(OBJ) $(shell $(CC) -print-libgcc-file-name)
@@ -91,6 +94,11 @@ $(_OBJPREFIX)%.o: %.c
        @mkdir -p $(dir $@)
        $V$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< -MMD -MP -MT $@ -MF [email protected]
 
+$(_OBJPREFIX)%.o: %.cc
+       @echo [CXX] -o $@
+       @mkdir -p $(dir $@)
+       $V$(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ -c $< -MMD -MP -MT $@ -MF [email protected]
+
 $(_OBJPREFIX)%.ao: %.$(ASSUFFIX)
        @echo [AS] -o $@
        @mkdir -p $(dir $@)
@@ -109,10 +117,10 @@ $(OUTPUTDIR)Libs/%:
 
 obj-native/%.no: %.c
        @mkdir -p $(dir $@)
-       $(NCC) -c $< -o $@ -Wall -std=gnu99 -MD -MP -MF [email protected]
+       $(NCC) -g -c $< -o $@ -Wall -std=gnu99 -MD -MP -MF [email protected] '-D_SysDebug(f,v...)=fprintf(stderr,"DEBUG "f"\n",##v)' -include stdio.h
 
 TEST_%: obj-native/TEST_%.no obj-native/%.no
-       $(NCC) -o $@ $^
+       $(NCC) -g -o $@ $^
 
 -include $(UTESTS:%=obj-native/TEST_%.no.dep)
 -include $(UTESTS:%=obj-native/%.no.dep)

UCC git Repository :: git.ucc.asn.au