#
# 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)
syntax highlighted by Code2HTML, v. 0.9.1