-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
74 lines (58 loc) · 1.72 KB
/
Makefile
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
Q := @
CC := gcc -std=gnu99
SRCS := $(wildcard *.c)
OBJS_32 := $(SRCS:.c=.o32)
OBJS_64 := $(SRCS:.c=.o64)
TARGET_32 := tripled_32
TARGET_64 := tripled_64
CFLAGS_32 := -m32 -I./include
CFLAGS_64 := -m64 -I./include
LDFLAGS_32 := -m32 -lm -lpthread
LDFLAGS_64 := -m64 -lm -lpthread
LBITS := $(shell getconf LONG_BIT)
.PHONY: all both clean
ifeq ($(LBITS),64)
all: .depend64 $(TARGET_64)
else
all: .depend32 $(TARGET_32)
endif
both: .depend $(TARGET_32) $(TARGET_64)
%.o32: %.c Makefile
$(Q)echo " Compiling '$<' ..."
$(Q)$(CC) $(CFLAGS_32) -o $@ -c $<
%.o64: %.c Makefile
$(Q)echo " Compiling '$<' ..."
$(Q)$(CC) $(CFLAGS_64) -o $@ -c $<
$(TARGET_32): $(OBJS_32)
$(Q)echo " $(COLOR_G)Building '$@' VER=$(AP_VER)... $(COLOR_W)"
$(Q)$(CC) -o $@ $(OBJS_32) $(LDFLAGS_32)
$(Q)cp $(TARGET_32) ../
$(TARGET_64): $(OBJS_64)
$(Q)echo " $(COLOR_G)Building '$@' VER=$(AP_VER)... $(COLOR_W)"
$(Q)$(CC) -o $@ $(OBJS_64) $(LDFLAGS_64)
$(Q)cp $(TARGET_64) ../
clean:
$(Q)rm -f .depend *~ *.bak *.res *.o32 *.o64
$(Q)echo " Cleaning '$(TARGET_32)' ..."
$(Q)rm -f $(TARGET_32) ../$(TARGET_32)
$(Q)echo " Cleaning '$(TARGET_64)' ..."
$(Q)rm -f $(TARGET_64) ../$(TARGET_64)
.depend:
$(Q)echo " Generating '$@' ..."
$(Q)$(CC) $(CFLAGS_32) -M *.c > $@
$(Q)$(CC) $(CFLAGS_64) -M *.c > $@
.depend32:
$(Q)echo " Generating '$@' ..."
$(Q)$(CC) $(CFLAGS_32) -M *.c > $@
.depend64:
$(Q)echo " Generating '$@' ..."
$(Q)$(CC) $(CFLAGS_64) -M *.c > $@
ifeq (.depend, $(wildcard .depend))
include .depend
endif
ifeq (.depend32, $(wildcard .depend32))
include .depend32
endif
ifeq (.depend64, $(wildcard .depend64))
include .depend64
endif