-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
44 lines (35 loc) · 835 Bytes
/
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
# exe name
all = fulldraw.exe
# Library names
LIBS = kernel32 user32 gdi32 gdiplus comdlg32 ucrt
# GCC
GCCFLAGS = $(AR:%=-o $@ -DUNICODE -mwindows -nostartfiles -s ${LIBS:%=-l%})
GCRC = $(AR:%=windres)
GCRFLAGS = $(AR:%=-o $*.o)
GCRM = $(AR:%=rm -f)
# VS
_LIBS = $(LIBS) %
_VSLIBS = $(_LIBS: =.lib )
_VSFLAGS = /utf-8 /DUNICODE /O2 /fp:fast /link $(_VSLIBS:%=) /ENTRY:__start__
_VSRC = rc
_VSRFLAGS = /fo $*.o
_VSRM = del /f
VSFLAGS = $(_VSFLAGS:%=)
VSRC = $(_VSRC:%=)
VSRFLAGS = $(_VSRFLAGS:%=)
VSRM = $(_VSRM:%=)
# GCC or VS
CFLAGS = $(GCCFLAGS) $(VSFLAGS)
RC = $(GCRC) $(VSRC)
RFLAGS = $(GCRFLAGS) $(VSRFLAGS)
RM = $(GCRM) $(VSRM)
# main
.PHONY: all
all: $(all) clean
.SUFFIXES: .exe .o .rc .cpp
$(all): $(all:.exe=.o)
$(CC) $*.o $*.cpp $(CFLAGS)
$(all:.exe=.o): $(all:.exe=.rc)
$(RC) $(RFLAGS) $*.rc
clean:
$(RM) *.obj