-
Notifications
You must be signed in to change notification settings - Fork 40
/
Copy pathgcc.mak
47 lines (40 loc) · 1.33 KB
/
gcc.mak
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
# Linux only for now
DIRSEP = /
ECHOTO = echo >>
ECHOTODEP =
LIBLIST = >
ECHOLIB = echo >>
ECHOLIBDEP =
RMFILES = rm -f
CP = cp
LIBC = -li86
NASMFLAGS := $(NASMFLAGS) -felf
SHELL_MMODEL_COMP = cmodel=small
INCLUDEPATH = -I. -I../compat -I../suppl/compat
COMPACT_MMODEL = -mcmodel=compact
CC = ia16-elf-gcc
CL = ia16-elf-gcc -mcmodel=small
CLO = -o $@
AR = ia16-elf-ar crsv
LD = $(CL) $(CFLAGS1) -o command.exe $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) command.ld $(LIBS) $(LIBC) -Wl,-Map,command.map
CFG = gcc.cfg
CFLAGS1 = -Os -Wall -Werror -Wno-pointer-to-int-cast -Wno-incompatible-pointer-types -mregparmcall -fno-builtin -fno-strict-aliasing -Wno-format -mfar-function-if-far-return-type -fno-caller-saves -fno-optimize-sibling-calls -fno-move-loop-invariants -fno-tree-loop-optimize -fno-rerun-cse-after-loop
# *Implicit Rules*
.SUFFIXES:
.SUFFIXES: .c .asm .com .exe .obj
ifeq ($(UTILS_BUILD),1)
.c.exe:
gcc -x c -Og -g -Wall -DGCC -D__GETOPT_H -I../suppl $< -o $@
else ifeq ($(COMPACT_MODEL),1)
.c.obj .c.exe:
@echo ------------------------------------------------------
@echo "$@ (DOS version) is not build because"
@echo ia16-elf-gcc does not support the compact memory model
@echo ------------------------------------------------------
.obj.exe:
else
.c.obj:
$(CC) -c $< @$(CFG) -o $@
.c.exe .obj.exe:
$(CL) $< @$(CFG) $(LIBS) $(LIBC) -o $@
endif