cygwin에서 Windows 프로그램 개발을 위한 Makefile template.
BASECFLAGS = -DUNICODE -D_UNICODE -DWIN32 -D_WIN32 -Wall -Wextra -ffunction-sections -fdata-sections
CXXFLAGS = -fno-rtti -fno-exceptions
ifdef debug
OPTFLAGS = -g -DDEBUG -Wall -Wextra -Wfloat-equal -Wunreachable-code
else
OPTFLAGS = -Os -s -DNDEBUG
endif
ifdef x64
MINGWPREFIX = x86_64-w64-mingw32
CFLAGS = $(BASECFLAGS) $(OPTFLAGS) -DWIN64 -D_WIN64
else
MINGWPREFIX = i686-pc-mingw32
CFLAGS = $(BASECFLAGS) $(OPTFLAGS)
endif
LDFLAGS = -Wl,--gc-sections -mwindows -mno-cygwin
CC = $(MINGWPREFIX)-gcc
CXX = $(MINGWPREFIX)-g++
RES = $(MINGWPREFIX)-windres
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.cpp
$(CXX) $(CFLAGS) $(CXXFLAGS) -c $< -o $@
%.res.o: %.rc
$(RES) -i $< -o $@
위 Makefile은 아래와 같이 사용할 수 있다.
디버그 빌드시
$ make debug=1
x64 빌드시
$ make x64=1