# # Define rules and targets for Yoink. # $(call include,moof stlplus) # Recurse into subdirectories. objects = $(patsubst %.c,$(builddir)/%.o,$(patsubst %.cc,$(builddir)/%.o,$(wildcard $d/*.c $d/*.cc))) ifeq (win32,$(platform)) objects += $b/win32.o # Also compile win32 resource file. endif ifeq (true,$(includeConfig)) objects += $b/config.o # Also compile in the configuration. exec += $b/config.gz exec += $b/config.c # Make config.c a build target. $b/config.gz: config.mk $(Q)$(gzip) $b/config.c: $b/config.gz $(Q)$(xxd) endif $(objects): TGT_CFLAGS := -I$b -I$d $(objects): config.h | $b # Make all objects depend on config.h; it's excessive, but config.h won't be # remade otherwise if dependencies are not being generated. The alternative # is to maintain an accurate list of objects with a dependency on config.h. ifeq (true,$(pch)) $(objects): $b/moof/precompile.hh.gch endif exec += $(objects) # Make the objects build targets. bindir_$b := $b/$(projectName)$(EXEEXT) # Install executable to bindir. $(bindir_$b): $(objects) $b/moof/libmoof.a $b/stlplus/libstlplus.a $(Q)$(link_cc) # # Define the run and debug targets. # run: $(bindir_$b) $(Q)$< $(YOINKFLAGS) debug: $(bindir_$b) $(Q)gdb $< .PHONY: run debug