annotate buildsys/nmake/tool_gcc.nmake @ 356:2f64957d6a46

- fix to dynload to build with musl libc (latter has dlinfo but not RTLD_SELF, so fallback to dl_iterate_phdr if on ELF targets)
author Tassilo Philipp
date Tue, 25 Feb 2020 16:07:45 +0100
parents 3e629dc19168
children ed19b429a152
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 #//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 # Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 # Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 # Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 #//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 #///////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 # GCC nmake rules
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 # tool_gcc.nmake
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 #///////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 CC =arm-eabi-gcc
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 CXX =arm-eabi-g++
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 AR =arm-eabi-ar
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 AS =arm-eabi-as
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 LD =arm-eabi-g++#arm-eabi-ld
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 OCP =arm-eabi-objcopy
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 !IF "$(BUILD_ARCH)" == "arm32_thumb"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 ASFLAGS = -g -mthumb -mthumb-interwork
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 CFLAGS = -g -Wall -O2 -I$(TOP)\dyncall -I$(TOP)\dyncallback -fomit-frame-pointer -ffast-math -fno-strict-aliasing -mthumb -mthumb-interwork
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 LDFLAGS = -g -mno-fpu -mthumb -mthumb-interwork
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 ARFLAGS =
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 !ELSE IF "$(BUILD_ARCH)" == "arm32_arm"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 ASFLAGS = -g
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 CFLAGS = -g -Wall -O2 -I$(TOP)\dyncall -I$(TOP)\dyncallback -fomit-frame-pointer -ffast-math -fno-strict-aliasing
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 LDFLAGS = -g -mno-fpu
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 ARFLAGS =
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 !ENDIF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 !IF "$(BUILD_OS)" == "nds"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 CFLAGS = $(CFLAGS) -DARM9 -mcpu=arm9tdmi -mtune=arm9tdmi -D__nds__ -I"$(DEVKITPRO_PATH)/libnds/include"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 CXXFLAGS = $(CXXFLAGS) -D__nds__ -I"$(DEVKITPRO_PATH)/libnds/include"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 LDFLAGS = $(LDFLAGS) -specs=ds_arm9.specs
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 !ENDIF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 .SUFFIXES:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 .SUFFIXES: .o .so .a .arm9 .nds .pdf .c .cpp .S .tex .cc
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 .S.o:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 echo .S.o: Assembling $< ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67 $(CC) $(ASFLAGS) $(CFLAGS) -o $@ -c $<
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 .c.o:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70 echo .c.o: Compiling $< ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 $(CC) $(CFLAGS) -o $@ -c $<
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 .cpp.o:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 echo .cpp.o: Compiling $< ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 $(CXX) $(CXXFLAGS) -o $@ -c $<
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 .cc.o:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 echo .cc.o: Compiling $< ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79 $(CXX) $(CXXFLAGS) -o $@ -c $<
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81 .tex.pdf:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82 pdflatex $<