]> Dogcows Code - chaz/yoink/blobdiff - src/rules.mk
pch support
[chaz/yoink] / src / rules.mk
index f6bd89b6c47fb2a953c2ea07da09254b7f48b689..cbf2776361555ee78e6d48162d83b12f3956dc6d 100644 (file)
@@ -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)
 
This page took 0.019054 seconds and 4 git commands to generate.