]> git.saurik.com Git - apt.git/blobdiff - buildlib/program.mak
apt-pkg/pkgcachegen.cc: copy Arch to avoid segfault on cache remap
[apt.git] / buildlib / program.mak
index 41454ad72e50e6cd731723864fe6aa21a92d4811..e0e76316c8e79d509bba8c0f6e9803a5279e75a7 100644 (file)
@@ -6,32 +6,45 @@
 # $(SOURCE) - The source code to use
 # $(PROGRAM) - The name of the program
 # $(SLIBS) - Shared libs to link against
+# $(LIB_MAKES) - Shared libary make files to depend on - to ensure we get
+# remade when the shared library version increases.
 
 # 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)-DEP := $(addprefix $(DEP)/,$(addsuffix .o.d,$(notdir $(basename $(SOURCE)))))
 $(LOCAL)-BIN := $(BIN)/$(PROGRAM)
 $(LOCAL)-SLIBS := $(SLIBS)
+$(LOCAL)-MKS := $(addprefix $(BASE)/,$(LIB_MAKES))
 
 # Install the command hooks
 program: $(BIN)/$(PROGRAM)
 clean: clean/$(LOCAL)
 veryclean: veryclean/$(LOCAL)
 
+TYPE = src
+include $(PODOMAIN_H)
+
+# Make Directories
+MKDIRS += $(OBJ) $(DEP) $(BIN)
+
 # The clean rules
-.PHONY: clean/$(LOCAL) veryclean/$(LOCAL)
+.PHONY: clean/$(LOCAL) veryclean/$(LOCAL) 
 clean/$(LOCAL):
        -rm -f $($(@F)-OBJS) $($(@F)-DEP)
 veryclean/$(LOCAL): clean/$(LOCAL)
        -rm -f $($(@F)-BIN)
 
+# The convience binary build rule
+.PHONY: $(PROGRAM)
+$(PROGRAM): $($(LOCAL)-BIN)
+
 # The binary build rule
-$($(LOCAL)-BIN): $($(LOCAL)-OBJS)
+$($(LOCAL)-BIN): $($(LOCAL)-OBJS) $($(LOCAL)-MKS)
        echo Building program $@
-       $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) $($(LOCAL)-SLIBS) -o $@ $(filter %.o,$^)
+       $(CXX) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS)
 
 # Compilation rules
 vpath %.cc $(SUBDIRS)