# Makefile generated by command: smake.sh -t helloworld -Pglib-2.0 -Pgtk+-2.0 # This file is generated with smake.sh. # You can use this make file with instruction make to # use one of build mode: debug, profile, develop, release. # No need to call make clean if You make with other mode, # because the Makefile containes rules for automatically clean. # Some usage examples: # make # default mode is debug # CFLAGS="-O2 -march=core2 -mtune=core2 -msse4.1 -mfpmath=sse -fomit-frame-pointer -pipe" LDFLAGS="-Wl,-O1" make mode=develop # CFLAGS="-O2 -march=amdfam10 -mtune=amdfam10 -msse4a --mfpmath=sse -fomit-frame-pointer -pipe" LDFLAGS="-Wl,-O1" make mode=profile # CFLAGS="-O2 -march=k6-2 -mtune=k6-2 -m3dnow --mfpmath=387 -fomit-frame-pointer -pipe" LDFLAGS="-Wl,-O1" make mode=release # Report bugs to #_________________________________ # ENVIRONMENT | #________________________________| TARGET0=helloworld TARGETS= $(TARGET0) CC=cc CXX=c++ CFLAGS := $(CFLAGS) CXXFLAGS := $(CXXFLAGS) LDFLAGS := $(LDFLAGS) LIBS=-latk-1.0 -lcairo -lfontconfig -lfreetype -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lgio-2.0 -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lgtk-x11-2.0 -lpango-1.0 -lpangocairo-1.0 -lpangoft2-1.0 -lrt -pthread SRC= INCLUDES=-D_REENTRANT -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/directfb -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libdrm -I/usr/include/libpng15 -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/lib64/glib-2.0/include -I/usr/lib64/gtk-2.0/include -pthread #________________________________________ # BUILD SCRIPT (don't change) | #_______________________________________| ifeq ($(mode),) mode = debug endif ifeq ($(mode),debug) CFLAGS := -O0 -g -DDEBUG -std=c99 -pedantic -Wextra -Wconversion $(CFLAGS) LDFLAGS := $(LDFLAGS) endif ifeq ($(mode),profile) CFLAGS := -O0 -g -DDEBUG -std=c99 -p -ftest-coverage -Wcoverage-mismatch $(CFLAGS) LDFLAGS := -g -p $(LDFLAGS) endif ifeq ($(mode),develop) CFLAGS := -O2 -g -DDEBUG -std=c99 $(CFLAGS) LDFLAGS := -O1 $(LDFLAGS) endif ifeq ($(mode),release) CFLAGS := -O2 -std=c99 $(CFLAGS) LDFLAGS := -O1 $(LDFLAGS) endif CFLAGS += -Wall $(INCLUDES) LDFLAGS += -Wall all: @make change_make_options &>/dev/null +make $(TARGETS) ifneq ($(mode),debug) ifneq ($(mode),profile) ifneq ($(mode),develop) ifneq ($(mode),release) @echo "Invalid build mode." @echo "Please use 'make mode=release', 'make mode=develop', 'make mode=profile' or 'make mode=debug'" @exit 1 endif endif endif endif @echo ".........................." @echo "Building on "$(mode)" mode " @echo "CFLAGS=$(CFLAGS)" @echo "LDFLAGS=$(LDFLAGS)" @echo ".........................." OLD_BUILD_MODE=$(shell grep ^MODE make_options.out 2>/dev/null | sed 's~^MODE=~~') OLD_BUILD_CFLAGS=$(shell grep ^CFLAGS make_options.out 2>/dev/null | sed 's~^CFLAGS=~~') OLD_BUILD_LDFLAGS=$(shell grep ^LDFLAGS make_options.out 2>/dev/null | sed 's~^LDFLAGS=~~') change_make_options: ifneq ($(mode)|$(CFLAGS)|$(LDFLAGS), $(OLD_BUILD_MODE)|$(OLD_BUILD_CFLAGS)|$(OLD_BUILD_LDFLAGS)) @echo CLEANING... @make clean @echo "MODE=$(mode)" > make_options.out @echo "CFLAGS=$(CFLAGS)" >> make_options.out @echo "LDFLAGS=$(LDFLAGS)" >> make_options.out endif %.o : $(CC) -c $(CFLAGS) $(SRC) -o $@ $< clean: $(RM) *.o *.out callgrind.out.* *.gcno $(TARGETS) .PHONY: all change_make_options clean #_________________________________ # R U L E S | #________________________________| target_objs0 = \ helloworld.o $(TARGET0): $(target_objs0) $(CC) $(LDFLAGS) -o $@ $(target_objs0) $(LIBS) helloworld.o: \ helloworld.c