X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Frules.mk;h=cbf2776361555ee78e6d48162d83b12f3956dc6d;hp=f6bd89b6c47fb2a953c2ea07da09254b7f48b689;hb=44b3014bce798789e795242d1556cb7449e6386a;hpb=6c9943707d4f33035830eba0587a61a34eaecbc2 diff --git a/src/rules.mk b/src/rules.mk index f6bd89b..cbf2776 100644 --- a/src/rules.mk +++ b/src/rules.mk @@ -3,31 +3,37 @@ # Define rules and targets for Yoink. # -$(call include,moof stlplus) # Recurse into subdirectories. +$(call include,moof stlplus) # Recurse into subdirectories. -objects = $(patsubst %.c,$(builddir)/%.o,$(patsubst %.cc,$(builddir)/%.o,$(wildcard $d/*.c $d/*.cc))) +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. +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.c # Make config.c a build target. -$b/config.c: config.mk +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$d -$(objects): config.h $(this) | $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. +$(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. -exec += $(objects) # Make the objects build targets. +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 := $b/$(projectName)$(EXEEXT) # Install executable to bindir. $(bindir_$b): $(objects) $b/moof/libmoof.a $b/stlplus/libstlplus.a $(Q)$(link_cc)