aseprite/makefile.gcc
David Capello 528eaab937 Added threads to load files in background.
Added a new file-selector (using PIDLs for Win32).
2008-02-04 02:37:26 +00:00

214 lines
4.5 KiB
Makefile

# Copyright (C) 2001-2005, 2007, 2008 by David A. Capello -*-Makefile-*-
.PHONY = _default
_default: default
######################################################################
# Setup CFLAGS and LFLAGS for GCC
CFLAGS += -Wall -I. -Isrc -Ithird_party \
-I$(LIBFREETYPE_DIR)/include \
-I$(LIBLUA_DIR)/include \
-I$(LIBJPEG_DIR) \
-I$(LIBGFLI_DIR) \
-I$(LIBPNG_DIR) \
-I$(ZLIB_DIR) \
-Wno-deprecated-declarations \
-DPNG_NO_MMX_CODE
# -I$(LIBGD_DIR)
LFLAGS += $(THIRD_PARTY_LIBS)
ifdef PROFILE
CFLAGS += -pg
LFLAGS += -pg
else
ifdef DEBUGMODE
CFLAGS += -g3
LFLAGS += -g3
else
CFLAGS += -s -O3 -DNDEBUG
LFLAGS += -s -O3 -DNDEBUG
endif
endif
ifdef DEFAULT_PREFIX
CFLAGS += -DDEFAULT_PREFIX="\"$(DEFAULT_PREFIX)\""
endif
ifdef USE_PRECOMPILED_HEADER
CFLAGS += -DUSE_PRECOMPILED_HEADER
endif
ifdef USE_X86_INT_MULT
CFLAGS += -DUSE_X86_INT_MULT
endif
######################################################################
# Rules to make third party libraries
$(LIBART_LIB): $(LIBART_OBJS)
-rm -f $@
ar rs $@ $^
$(LIBFREETYPE_LIB): $(LIBFREETYPE_OBJS)
-rm -f $@
ar rs $@ $^
$(LIBGD_LIB): $(LIBGD_OBJS)
-rm -f $@
ar rs $@ $^
$(LIBGFLI_LIB): $(LIBGFLI_OBJS)
-rm -f $@
ar rs $@ $^
$(LIBJPEG_LIB): $(LIBJPEG_OBJS)
-rm -f $@
ar rs $@ $^
$(LIBLUA_LIB): $(LIBLUA_OBJS)
-rm -f $@
ar rs $@ $^
$(LIBPNG_LIB): $(LIBPNG_OBJS)
-rm -f $@
ar rs $@ $^
$(ZLIB_LIB): $(ZLIB_OBJS)
-rm -f $@
ar rs $@ $^
######################################################################
# Rules to build objects and the application
VPATH = src \
src/commands \
src/commands/fx \
src/console \
src/core \
src/dialogs \
src/effect \
src/file \
src/file/gif \
src/intl \
src/jinete \
src/jinete/themes \
src/modules \
src/raster \
src/raster/x86 \
src/script \
src/util \
src/widgets \
src/widgets/editor \
$(LIBART_DIR) \
$(LIBFREETYPE_DIR)/src/base \
$(LIBFREETYPE_DIR)/src/autohint \
$(LIBFREETYPE_DIR)/src/cache \
$(LIBFREETYPE_DIR)/src/cff \
$(LIBFREETYPE_DIR)/src/cid \
$(LIBFREETYPE_DIR)/src/pcf \
$(LIBFREETYPE_DIR)/src/psaux \
$(LIBFREETYPE_DIR)/src/pshinter \
$(LIBFREETYPE_DIR)/src/psnames \
$(LIBFREETYPE_DIR)/src/raster \
$(LIBFREETYPE_DIR)/src/sfnt \
$(LIBFREETYPE_DIR)/src/smooth \
$(LIBFREETYPE_DIR)/src/truetype \
$(LIBFREETYPE_DIR)/src/type1 \
$(LIBFREETYPE_DIR)/src/winfonts \
$(LIBGD_DIR) \
$(LIBGFLI_DIR) \
$(LIBJPEG_DIR) \
$(LIBLUA_DIR)/src \
$(LIBLUA_DIR)/src/lib \
$(LIBPNG_DIR) \
$(ZLIB_DIR)
ifdef USE_PRECOMPILED_HEADER
ASE_DEPS = config.h.gch
else
ASE_DEPS =
endif
ASE_DEPS += $(ASE_OBJS) $(THIRD_PARTY_LIBS)
ifdef USE_PRECOMPILED_HEADER
config.h.gch: config.h
$(CC) $(CFLAGS) -o $@ -c $<
endif
######################################################################
# Rules to build the object files
$(OBJ_DIR)/%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJ_DIR)/%$(OBJ): %.s
$(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $<
$(OBJ_DIR)/art.%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJ_DIR)/freetype.%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJ_DIR)/gd.%$(OBJ): %.c
$(CC) $(CFLAGS) -DNONDLL -DHAVE_CONFIG_H -o $@ -c $<
$(OBJ_DIR)/gfli.%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJ_DIR)/jpeg.%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJ_DIR)/lua.%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(OBJ_DIR)/png.%$(OBJ): %.c
$(CC) $(CFLAGS) -I$(LIBPNG_DIR) -o $@ -c $<
$(OBJ_DIR)/zlib.%$(OBJ): %.c
$(CC) $(CFLAGS) -o $@ -c $<
######################################################################
# Application
ifndef WITHICON
$(ASE): $(ASE_DEPS)
$(CC) -o $@ $(ASE_OBJS) $(LFLAGS) $(LFLAGS_LAST)
else
$(OBJ_DIR)/%.res: src/%.rc
$(WINDRES) -O coff -o $@ -i $<
$(ASE): $(ASE_DEPS) $(OBJ_DIR)/icon.res
$(CC) -o $@ $(ASE_OBJS) $(OBJ_DIR)/icon.res $(LFLAGS) $(LFLAGS_LAST)
endif
######################################################################
# Rules to make tests
TESTS = $(addsuffix $(EXE), \
$(basename \
$(wildcard src/test/*.c) \
$(wildcard src/test/raster/*.c) \
$(wildcard src/test/jinete/*.c)))
AUTOTESTS = $(addsuffix $(EXE), \
$(basename \
$(wildcard src/test/*.c)))
src/test/%$(EXE): src/test/%.c $(COMMON_OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) $(LFLAGS_LAST)
src/test/raster/%$(EXE): src/test/raster/%.c $(COMMON_OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) $(LFLAGS_LAST)
src/test/jinete/%$(EXE): src/test/jinete/%.c $(COMMON_OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LFLAGS) $(LFLAGS_LAST)
test: $(TESTS)
runtest:
@-$(foreach TEST, $(AUTOTESTS), ./$(TEST))