summaryrefslogtreecommitdiff
path: root/build/exe.mk
blob: 30c407b77d17722bb810bbdd8be119852699b4a7 (plain)
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
#
# GNU makefile fragment for building an executable
#

CC           = gcc
# LINKAGE can be forced to -static or -dynamic from invocation if desired, but it defaults to -static
LINKAGE      = -static
LINK         = gcc $(LINKAGE)
BINPATH      = ../../obj/bin
LIBPATH      = ../../obj/lib
PROGRAM      = $(BINPATH)/$(PROGRAM_NAME)

all : release

debug   : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -ffast-math -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W $(DEFINES) $(INCLUDES)

LFLAGS  = -L$(LIBPATH)

debug   : $(PROGRAM)
release : $(PROGRAM)

$(PROGRAM) : $(OBJS)
	$(LINK) -o $@ $(OBJS) $(LFLAGS) $(LIBS)

%.o : %.c
	$(CC) $(CFLAGS) -c $< -o $@
%.i : %.c
	$(CC) $(CFLAGS) -E $< -o $@

.PHONY : clean
clean :
	-rm -f $(OBJS) $(PROGRAM)

.PHONY : depend
depend:
	makedepend -- $(CFLAGS) $(INCLUDES) -- *.c