@@ -16,11 +16,15 @@ DEBUG?=0
1616PROFILE? =0
1717SAVE_ASM? =0
1818WINDOWS? =0
19+ MACOS? =0
20+ BOOST? =0
1921
2022# VARIABLES
2123CFLAGS+=-std =c11 -pedantic
2224CFLAGS+ =-msse2 -mfpmath=sse
2325CFLAGS+ =-g
26+ CXXFLAGS+ =-msse2 -mfpmath=sse -std=c++17
27+ CXXFLAGS+ =-g
2428WARN_FLAGS+ =-Wall -Wextra -Winline -Wshadow
2529NO_WARN_FLAGS+ =-w
2630ifeq ($(CC ) ,)
@@ -70,6 +74,19 @@ CFLAGS+=-mstackrealign # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48659
7074RES+=icon.rc.o
7175endif
7276
77+ ifeq ($(MACOS ) ,1)
78+ HOMEBREW: =$(shell brew --prefix)
79+ CPPFLAGS+ =-I$(HOMEBREW ) /include
80+ LDFLAGS+ =-L$(HOMEBREW ) /lib
81+
82+ ifeq ($(BOOST ) ,1)
83+ HOMEBREW_BOOST: =$(shell brew --prefix boost)
84+ CPPFLAGS+ =-DBOOST_ALIGNED_ALLOC -I$(HOMEBREW_BOOST ) /include
85+ LDFLAGS+ =-L$(HOMEBREW_BOOST ) /lib
86+ OBJS+ =boost_aligned_alloc.o
87+ endif
88+ endif
89+
7390ifeq ($(SAVE_ASM ) ,1)
7491CFLAGS+ =-save-temps -masm=intel -fverbose-asm
7592endif
@@ -82,15 +99,22 @@ LDFLAGS+=$(BFLAGS)
8299all : jpeg2png$(EXE )
83100
84101jpeg2png$(EXE ) : $(OBJS ) $(RES ) Makefile
102+ ifeq ($(BOOST ) ,0)
85103 $(CC) $(OBJS) $(RES) -o $@ $(LDFLAGS) $(LIBS)
104+ else
105+ $(CXX) $(OBJS) $(RES) -o $@ $(CXXFLAGS) $(LDFLAGS) $(LIBS)
106+ endif
86107
87108-include $(OBJS :.o=.d)
88109
89110gopt/gopt.o : gopt/gopt.c gopt/gopt.h Makefile
90- $(CC ) $< -c -o $@ $(CFLAGS ) $(NO_WARN_FLAGS )
111+ $(CC ) $< -c -o $@ $(CFLAGS ) $(CPPFLAGS ) $( NO_WARN_FLAGS )
91112
92113% .o : % .c Makefile
93- $(CC ) -MP -MMD $< -c -o $@ $(CFLAGS ) $(WARN_FLAGS )
114+ $(CC ) -MP -MMD $< -c -o $@ $(CFLAGS ) $(CPPFLAGS ) $(WARN_FLAGS )
115+
116+ % .o : % .cpp Makefile
117+ $(CXX ) -MP -MMD $< -c -o $@ $(CXXFLAGS ) $(CPPFLAGS ) $(WARN_FLAGS )
94118
95119% .rc.o : % .rc Makefile
96120 $(WINDRES ) $< $@
0 commit comments