# # Makefile.mingw # # Description: Makefile for win32 (mingw) version of EasyTAG # # # PATHS # INCLUDE_DIR := . EASYTAG_TOP := .. EASYTAG_SRC := . EASYTAG_INSTALL_DIR := $(EASYTAG_TOP)/win32-install-dir ## ## VARIABLE DEFINITIONS ## CPP = g++ CC = gcc.exe TARGET = easytag # Compiler and Linker Options CFLAGS += -g -O2 -mms-bitfields DEFINES += -DHAVE_GTK -DHAVE_CONFIG_H LDFLAGS = -mwindows WINDRES := windres ## ## INCLUDE PATHS ## INCLUDE_PATHS = -I$(INCLUDE_DIR) \ -I$(INCLUDE_DIR)/win32 \ -I$(EASYTAG_TOP) \ `pkg-config --cflags gtk+-2.0` \ -I/local/include LIB_PATHS = `pkg-config --libs gtk+-2.0` \ `pkg-config --libs vorbisfile` \ -L$(EASYTAG_SRC) \ -L/local/lib \ -lflac \ -lmp4v2 \ -lid3 \ -lid3tag \ -liconv \ -lspeex \ -lstdc++ \ -lz \ -lwavpack \ -lws2_32 ## ## SOURCES, OBJECTS ## RC_SRC = win32/easytag.rc DLL_C_SRC = about.c \ ape_tag.c \ bar.c \ base64.c \ browser.c \ charset.c \ cddb.c \ crc32.c \ dlm.c \ easytag.c \ et_core.c \ flac_header.c \ flac_tag.c \ id3_tag.c \ id3v24_tag.c \ id3lib/c_wrapper.c \ libapetag/apetaglib.c \ libapetag/info_mac.c \ libapetag/info_mpc.c \ libapetag/is_tag.c \ libmpg123/common.c \ libmpg123/dxhead.c \ libmpg123/getbits.c \ libmpg123/layer1.c \ libmpg123/layer2.c \ libmpg123/layer3.c \ libmpg123/mpg123.c \ log.c \ misc.c \ monkeyaudio_header.c \ mp4_header.c \ mp4_tag.c \ mpeg_header.c \ msgbox.c \ musepack_header.c \ ogg_header.c \ ogg_tag.c \ picture.c \ prefs.c \ scan.c \ setting.c \ vcedit.c \ wavpack_header.c \ wavpack_tag.c \ win32/gtkwin32dep.c \ win32/win32dep.c DLL_OBJECTS = $(DLL_C_SRC:%.c=%.o) $(RC_SRC:%.rc=%.o) EXE_C_SRC = win32/win_easytag.c EXE_OBJECTS = $(EXE_C_SRC:%.c=%.o) $(RC_SRC:%.rc=%.o) ## ## LIBRARIES ## ## ## RULES ## # How to make a C file %.o: %.cpp $(CPP) $(CFLAGS) $(INCLUDE_PATHS) $(DEFINES) -c $< -o $@ # 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 ## .PHONY: all clean all: $(TARGET).dll $(TARGET).exe install: all cp $(EASYTAG_SRC)/easytag.exe $(EASYTAG_SRC)/easytag.dll $(EASYTAG_INSTALL_DIR) strip -s $(EASYTAG_INSTALL_DIR)/easytag.* # # BUILD DLL # $(TARGET).lib $(TARGET).dll: $(DLL_OBJECTS) $(CC) -shared $(DLL_OBJECTS) $(LIB_PATHS) $(DLL_LIBS) $(DLL_LD_FLAGS) -Wl,--out-implib,$(TARGET).lib -o $(TARGET).dll # # BUILD EXE # $(TARGET).exe: $(TARGET.dll) $(EXE_OBJECTS) $(CC) $(LDFLAGS) $(EXE_OBJECTS) $(LIB_PATHS) $(EXE_LIBS) -o $(TARGET).exe ## ## CLEAN RULES ## clean: rm -rf $(DLL_OBJECTS) $(EXE_OBJECTS) rm -rf $(TARGET).dll rm -rf $(TARGET).lib rm -rf $(TARGET).exe