summaryrefslogtreecommitdiff
path: root/buildlib/program.mak
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:50:50 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:50:50 +0000
commit1164783d22d97e7ca0454e23faad8f8bb70a901d (patch)
tree0d303b703236c56562c7010f269cd23b9d7527c5 /buildlib/program.mak
parentfaf4e30cb406bf35c9bb3ec7c018107ea6e01eba (diff)
Compile of apt-cache
Author: jgg Date: 1998-07-15 05:56:42 GMT Compile of apt-cache
Diffstat (limited to 'buildlib/program.mak')
-rw-r--r--buildlib/program.mak47
1 files changed, 47 insertions, 0 deletions
diff --git a/buildlib/program.mak b/buildlib/program.mak
new file mode 100644
index 000000000..8bca3c24e
--- /dev/null
+++ b/buildlib/program.mak
@@ -0,0 +1,47 @@
+# -*- make -*-
+
+# This creates a program
+
+# Input
+# $(SOURCE) - The source code to use
+# $(PROGRAM) - The name of the program
+# $(SLIBS) - Shared libs to link against
+
+# See defaults.mak for information about LOCAL
+
+# Some local definitions
+LOCAL := $(PROGRAM)
+$(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(notdir $(basename $(SOURCE)))))
+$(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .d,$(notdir $(basename $(SOURCE)))))
+$(LOCAL)-BIN := $(BIN)/$(PROGRAM)
+$(LOCAL)-SLIBS := $(SLIBS)
+
+# Install the command hooks
+program: $(BIN)/$(PROGRAM)
+clean: clean/$(LOCAL)
+veryclean: veryclean/$(LOCAL)
+
+# The clean rules
+.PHONY: clean/$(LOCAL) veryclean/$(LOCAL)
+clean/$(LOCAL):
+ -rm -f $($(@F)-OBJS) $($(@F)-DEP)
+veryclean/$(LOCAL): clean/$(LOCAL)
+ -rm -f $($(@F)-BIN)
+
+# The binary build rule
+$($(LOCAL)-BIN): $($(LOCAL)-OBJS)
+ echo Building program $@
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(LOCAL)-SLIBS)
+
+# Compilation rules
+vpath %.cc $(SUBDIRS)
+$(OBJ)/%.o: %.cc
+ echo Compiling $< to $@
+ $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
+ $(DoDep)
+
+# Include the dependencies that are available
+The_DFiles = $(wildcard $($(LOCAL)-DEP))
+ifneq ($(words $(The_DFiles)),0)
+include $(The_DFiles)
+endif