1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
#
# some rules to compile stuff ...
#
# (c) 2002 Gerd Knorr <kraxel@bytesex.org>
#
# main features:
# * autodependencies via "cpp -MD"
# * fancy, non-verbose output
#
# This file is public domain. No warranty. If it breaks you keep
# both pieces.
#
########################################################################
# verbose yes/no
verbose ?= no
# dependency files
compile_c = $(CC) $(CFLAGS) -c -o $@ $<
compile_m = $(CC) $(CFLAGS) -ObjC -fobjc-gc -c -o $@ $<
compile_cc = $(CXX) $(CXXFLAGS) -c -o $@ $<
ifeq ($(FOUND_OS),mac)
compile_farsight = $(CC) $(CFLAGS) -ObjC -fobjc-gc $(GST_CFLAGS) $(FARSIGHT2_CFLAGS) -c -o $@ $<
SHARED := -dynamiclib -fno-common -Wl,-single_module -shared-libgcc
else
compile_farsight = $(CC) $(CFLAGS) $(GST_CFLAGS) $(FARSIGHT2_CFLAGS) -c -o $@ $<
SHARED := -shared
endif
link_app = $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
link_farsight = $(CC) $(LDFLAGS) $^ $(LDLIBS) $(GST_LIBS) $(FARSIGHT2_LIBS) $(SHARED) -o $@
link_so = $(CC) $(LDFLAGS) $^ $(LDLIBS) $(SHARED) -o $@
link_so_addlibs = $(link_so) $(ADDLIBS)
link_so_cpp = $(CXX) $(LDFLAGS) $^ $(LDLIBS) $(CXX_LIB) $(SHARED) -o $@
ar_lib = rm -f $@ && ar -sr $@ $^ && ranlib $@
# non-verbose output
ifeq ($(verbose),no)
echo_compile_c = echo " CC " $@
echo_compile_m = echo " OBJCC " $@
echo_compile_farsight = echo " CC " $@
echo_compile_cc = echo " CXX " $@
echo_link_app = echo " LD " $@
echo_link_farsight = echo " LD " $@
echo_link_so = echo " LD " $@
echo_link_so_cpp = echo " LDX " $@
echo_link_so_addlibs = echo " LD " $@
echo_ar_lib = echo " AR " $@
else
echo_compile_c = echo $(compile_c)
echo_compile_m = echo $(compile_m)
echo_compile_farsight = echo $(compile_farsight)
echo_compile_cc = echo $(compile_cc)
echo_link_app = echo $(link_app)
echo_link_farsight = echo $(link_farsight)
echo_link_so = echo $(link_so)
echo_link_so_addlibs = echo $(link_so_addlibs)
echo_link_so_cpp = echo $(link_so_cpp)
echo_ar_lib = echo $(ar_lib)
endif
%.o: %.c
@$(echo_compile_c)
@$(compile_c)
%.o: %.m
@$(echo_compile_m)
@$(compile_m)
%.cc.o: %.cc
@$(echo_compile_cc)
@$(compile_cc)
%.cpp.o: %.cpp
@$(echo_compile_cc)
@$(compile_cc)
%.cpp.so: %.cpp.o
@$(echo_link_so_cpp)
@$(link_so_cpp)
%.cpp.dylib: %.cpp.o
@$(echo_link_so_cpp)
@$(link_so_cpp)
%.dylib: %.o
@$(echo_link_so)
@$(link_so)
%.so: %.o
@$(echo_link_so)
@$(link_so)
%.a: %.o
@$(echo_ar_lib)
@$(ar_lib)
%: %.o
@$(echo_link_app)
@$(link_app)
|