# # Makefile.mingw # # Description: Makefile for win32 (mingw) version of Gastman # Author: Roland Krikava # Date: September 16, 2002 # # # PATHS # GASTMAN_TOP := . WIN32DEV_TOP := ../win32-dev GTK_2_0_TOP := $(WIN32DEV_TOP)/gtk_2_0 GTK_1_2_TOP := $(WIN32DEV_TOP)/gtk_1_2 DB_TOP := $(WIN32DEV_TOP)/db-3.1 GTK_1_2_LIB := $(GTK_1_2_TOP)/lib GTK_2_0_LIB := $(GTK_2_0_TOP)/lib GASTMAN_INSTALL_DIR := ./gastman-win32 ## ## VARIABLE DEFINITIONS ## TARGET = gastman # Build version either GTK_1_2 or GTK_2_0 BUILD_VER = GTK_2_0 # Compiler Options CC = gcc CFLAGS = -O2 -g -Wall -mno-cygwin -fnative-struct LDFLAGS = -mwindows # -mconsole DEFINES = -DGTK_ENABLE_BROKEN ## ## INCLUDE MAKEFILES ## ## ## INCLUDE PATHS ## INCLUDES = -I$(GASTMAN_TOP) \ -I$(GASTMAN_TOP)/include \ -I$(DB_TOP) GTK_2_0_INCLUDES = -I$(GTK_2_0_TOP)/include \ -I$(GTK_2_0_TOP)/include/gtk-2.0 \ -I$(GTK_2_0_TOP)/include/glib-2.0 \ -I$(GTK_2_0_TOP)/include/pango-1.0 \ -I$(GTK_2_0_TOP)/include/atk-1.0 \ -I$(GTK_2_0_TOP)/lib/glib-2.0/include \ -I$(GTK_2_0_TOP)/lib/gtk-2.0/include GTK_1_2_INCLUDES = -I$(GTK_1_2_TOP)/include \ -I$(GTK_1_2_TOP)/include/glib-2.0 \ -I$(GTK_1_2_TOP)/lib/glib-2.0/include \ -I$(GTK_1_2_TOP)/lib/gtk+/include GTK_2_0_LIB_PATHS = -L$(GTK_2_0_TOP)/lib \ -L$(DB_TOP) GTK_1_2_LIB_PATHS = -L$(GTK_1_2_TOP)/lib \ -L$(DB_TOP) ## ## SOURCES, OBJECTS ## C_SRC = gastman.c \ gui.c \ gtklink.c WIN32_C_SRC = strsep.c \ gettimeofday.c OBJECTS = $(C_SRC:%.c=%.o) WIN32_OBJECTS = $(WIN32_C_SRC:%.c=win32/%.o) ## ## LIBRARIES ## GTK_2_0_LIBS = -lgtk-win32-2.0 \ -lpango-1.0 \ -lglib-2.0 \ -lgdk-win32-2.0 \ -lgobject-2.0 \ -lintl \ -lgmodule-2.0 \ -lgdk_pixbuf-2.0 \ -lws2_32 \ -liberty \ -lwinmm \ -ldb31 GTK_1_2_LIBS = -lgtk \ -lglib-2.0 \ -lgdk \ -lgmodule-2.0 \ -lintl \ -lws2_32 \ -liberty \ -lwinmm \ -ldb31 GTK_1_2_DLLS = $(GTK_1_2_LIB)/libgdk-0.dll \ $(GTK_1_2_LIB)/libglib-2.0-0.dll \ $(GTK_1_2_LIB)/libintl-1.dll \ $(GTK_1_2_LIB)/iconv.dll \ $(GTK_1_2_LIB)/libgmodule-2.0-0.dll \ $(GTK_1_2_LIB)/libgtk-0.dll \ $(DB_TOP)/libdb31.dll GTK_2_0_DLLS = $(GTK_2_0_LIB)/libgdk-win32-2.0-0.dll \ $(GTK_2_0_LIB)/libglib-2.0-0.dll \ $(GTK_2_0_LIB)/libintl-1.dll \ $(GTK_2_0_LIB)/iconv.dll \ $(GTK_2_0_LIB)/libgmodule-2.0-0.dll \ $(GTK_2_0_LIB)/libgtk-win32-2.0-0.dll \ $(GTK_2_0_LIB)/libgdk_pixbuf-2.0-0.dll \ $(GTK_2_0_LIB)/libgobject-2.0-0.dll \ $(GTK_2_0_LIB)/libpango-1.0-0.dll \ $(GTK_2_0_LIB)/libpangowin32-1.0-0.dll \ $(GTK_2_0_LIB)/libatk-1.0-0.dll \ $(DB_TOP)/libdb31.dll ## ## RULES ## ifeq ($(BUILD_VER),GTK_2_0) INCLUDE_PATHS = $(INCLUDES) $(GTK_2_0_INCLUDES) endif ifeq ($(BUILD_VER),GTK_1_2) INCLUDE_PATHS = $(INCLUDES) $(GTK_1_2_INCLUDES) DEFINES += -DNO_PIXBUF endif # How to make a C file %.o: %.c $(CC) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@ # How to make an RC file %.o: %.rc windres -i $< -o $@ ## ## TARGET DEFINITIONS ## ifeq ($(BUILD_VER),GTK_2_0) LIB_PATHS = $(GTK_2_0_LIB_PATHS) LIBS = $(GTK_2_0_LIBS) endif ifeq ($(BUILD_VER),GTK_1_2) LIB_PATHS = $(GTK_1_2_LIB_PATHS) LIBS = $(GTK_1_2_LIBS) endif .PHONY: all clean all: $(TARGET).exe $(TARGET).exe: $(OBJECTS) $(WIN32_OBJECTS) gcc $(OBJECTS) $(WIN32_OBJECTS) $(LIB_PATHS) $(LIBS) -o $(TARGET).exe ifeq ($(BUILD_VER),GTK_2_0) install: all mkdir -p $(GASTMAN_INSTALL_DIR)/icons cp $(GTK_2_0_DLLS) $(TARGET).exe $(GASTMAN_INSTALL_DIR) cp -R art/*.xpm $(GASTMAN_INSTALL_DIR)/icons mkdir -p $(GASTMAN_INSTALL_DIR)/lib/gtk-2.0 cp -R $(GTK_2_0_LIB)/gtk-2.0/2.0.0 $(GASTMAN_INSTALL_DIR)/lib/gtk-2.0 cp -R $(GTK_2_0_LIB)/pango $(GASTMAN_INSTALL_DIR)/lib cp -R $(GTK_2_0_TOP)/etc $(GASTMAN_INSTALL_DIR) endif ifeq ($(BUILD_VER),GTK_1_2) install: all mkdir -p $(GASTMAN_INSTALL_DIR)/icons cp $(GTK_1_2_DLLS) $(TARGET).exe $(GASTMAN_INSTALL_DIR) cp -R art/*.xpm $(GASTMAN_INSTALL_DIR)/icons endif ## ## CLEAN RULES ## clean: rm -rf *.o win32/*.o rm -rf $(TARGET).exe rm -rf $(GASTMAN_INSTALL_DIR)