Unify the description style in the "file formats" table (FS#10038)
[kugel-rb/myfork.git] / tools / functions.make
blob6748962d6a5d23528d31615d979c2601be842ebc
1 # __________ __ ___.
2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6 # \/ \/ \/ \/ \/
7 # $Id$
10 # preprocess - run preprocessor on a file and return the result as a string
12 # This uses the native 'gcc' compiler and not $(CC) since we use the -imacros
13 # option and older gcc compiler doesn't have that. We use one such older
14 # compiler for the win32 cross-compiles on Linux.
16 # The weird grep -v thing in here is due to Apple's stupidities and is needed
17 # to make this do right when used on Mac OS X.
19 # The sed line is to prepend the directory to all source files
21 preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c -include config.h $(1) | \
22 grep -v '^\#' | \
23 sed -e 's:^..*:$(dir $(1))&:')
25 preprocess2file = $(shell $(CC) $(PPCFLAGS) $(3) -E -P -x c -include config.h $(1) | \
26 grep -v '^\#' | grep -v "^$$" > $(2))
28 c2obj = $(addsuffix .o,$(basename $(subst $(ROOTDIR),$(BUILDDIR),$(1))))
30 # calculate dependencies for a list of source files $(2) and output them
31 # to a file $(1)
32 mkdepfile = $(shell \
33 $(CC) $(PPCFLAGS) $(OTHER_INC) -MG -MM -include config.h $(2) | \
34 $(TOOLSDIR)/addtargetdir.pl $(ROOTDIR) $(BUILDDIR) | \
35 sed -e "s: lang.h: $(BUILDDIR)/lang/lang_core.o:" \
36 -e "s: sysfont.h: $(BUILDDIR)/sysfont.h:" \
37 -e "s: max_language_size.h: $(BUILDDIR)/lang/max_language_size.h:" \
38 -e "s: bitmaps/: $(BUILDDIR)/bitmaps/:g" \
39 -e "s: pluginbitmaps/: $(BUILDDIR)/pluginbitmaps/:g" \
40 -e "s: lib/: $(APPSDIR)/plugins/lib/:g" \
41 -e "s: codeclib.h: $(APPSDIR)/codecs/lib/codeclib.h:g" \
42 >> $(1)_)
44 # function to create .bmp dependencies
45 bmpdepfile = $(shell \
46 for each in $(2); do \
47 obj=`echo $$each | sed -e 's/\.bmp/.o/' -e 's:$(ROOTDIR):$(BUILDDIR):'`; \
48 src=`echo $$each | sed -e 's/\.bmp/.c/' -e 's:$(ROOTDIR):$(BUILDDIR):'`; \
49 echo $$obj: $$src; \
50 echo $$src: $$each; \
51 done \
52 >> $(1); )
54 ifndef V
55 SILENT:=@
56 else
57 VERBOSEOPT:=-v
58 endif
59 PRINTS=$(SILENT)$(call info,$(1))
61 # old 'make' versions don't have the built-in 'info' function
62 info=old$(shell echo >&2 "Consider upgrading to GNU make 3.81+ for optimum build performance.")
63 ifeq ($(call info),old)
64 export info=echo "$$(1)";
65 endif