]> git.saurik.com Git - apt.git/blobdiff - buildlib/program.mak
FileFd: Add a buffered writing mode
[apt.git] / buildlib / program.mak
index 792c7d522f52fa5b89681e2c367466245af3763e..1b4a5719a9f2f92296b7052dbc0b30181ebdb7cc 100644 (file)
@@ -6,6 +6,8 @@
 # $(SOURCE) - The source code to use
 # $(PROGRAM) - The name of the program
 # $(SLIBS) - Shared libs to link against
+# $(LIB_MAKES) - Shared library make files to depend on - to ensure we get
+# remade when the shared library version increases.
 
 # See defaults.mak for information about LOCAL
 
@@ -15,29 +17,40 @@ $(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .o,$(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) $(CXXSTD) $(CXXFLAGS) $(LDFLAGS) $(LFLAGS) -o $@ $(filter %.o,$^) $($(@F)-SLIBS) $(LEFLAGS)
 
 # Compilation rules
 vpath %.cc $(SUBDIRS)
 $(OBJ)/%.o: %.cc
        echo Compiling $< to $@
-       $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
+       $(CXX) -c $(INLINEDEPFLAG) $(CPPFLAGS) $(CXXSTD) $(CXXFLAGS) -o $@ '$(abspath $<)'
        $(DoDep)
 
 # Include the dependencies that are available