]> git.llucax.com Git - software/makeit.git/blobdiff - subproj/Build.mak
Use symbolic names in Makefiles default goals
[software/makeit.git] / subproj / Build.mak
index 353fe836b5b1deda7ce731befbe389900fc71f0b..2d3f1209ca7f6169036cebaca54414b940b49b87 100644 (file)
@@ -1,11 +1,40 @@
 
-setup_include_dir__ := $(call symlink_include_dir,otherproj)
+# Symbolic target to add to all
+.PHONY: otherproj
+all += otherproj
 
+# pkg-config specification file
+otherproj-PC-PREFIX := $(prefix)
+otherproj-PC-NAME := otherproj
+otherproj-PC-DESC := Some other project
+otherproj-PC-URL := http://www.otherproj.example.com/
+otherproj-PC-VERSION := 1.0
+otherproj-PC-LIBS := -lotherproject
+otherproj-PC-CFLAGS := -DOTHERPROJ_DEFINE
+otherproj-PC-VARS := PREFIX NAME DESC URL VERSION LIBS CFLAGS
+$L/otherproj.pc: PC_VARS := $(otherproj-PC-VARS)
+$L/otherproj.pc: $C/otherproj.pc.in $L/otherproj.pc-flags
+# trigger a rebuild when flags change
+setup_flags_files__ := $(call gen_rebuild_flags,$L/otherproj.pc-flags,\
+               $(call varcat,$(otherproj-PC-VARS),otherproj-PC-))
+# install
+$I/lib/pkgconfig/otherproj.pc: $L/otherproj.pc
+install += $I/lib/pkgconfig/otherproj.pc
+otherproj: $L/otherproj.pc
+
+# Shared library
 $L/libotherproj.so: LINKER := $(CC)
 $L/libotherproj.so: $(call find_objects,c)
-
-.PHONY: otherproj
+$I/lib/libotherproj.so: $L/libotherproj.so
+install += $I/lib/libotherproj.so
 otherproj: $L/libotherproj.so
 
-all += otherproj
+# Install the library's headers
+$I/include/otherproj/%.h: $C/%.h
+       $(call install_file)
+# XXX: we can't use += here, call will be resolved lazily if we do
+install := $(install) $(call find_headers,h,$I/include/otherproj)
+
+# Create the include directory symbolic link and pkg-config flags file
+setup_include_dir__ := $(call symlink_include_dir,otherproj)