mtsedit/src/Makefile

113 lines
3.3 KiB
Makefile

# --- set these according to your configuration ---
LINUXSDL = /usr/include/SDL2
MINGWSDL = ../..
MACSDL = ~/Library/Frameworks/SDL2.framework/Versions/A/Headers
# -------------------------------------------------
TARGET = mtsedit
SRCS = $(filter-out bin2h.c,$(wildcard *.c))
OBJS = $(SRCS:.c=.o)
PREFIX ?= usr/
INSTDIR=$(DESTDIR:/=)/$(PREFIX:/=)
# MacOSX
ifneq ("$(wildcard $(MACSDL)/SDL.h)","")
CFLAGS = -I$(MACSDL)
FDIR=$(MACSDL:/Headers=)
FDIR=$(FDIR:/Versions/A=)
FDIR=$(FDIR:/SDL2.framework=)
LIBS = -F$(FDIR) -framework SDL2
PACKAGE = MacOSX
else
ifneq ("$(wildcard /Library/Frameworks/SDL*)","")
CFLAGS = -I/Library/Frameworks/SDL2.framework/Headers -I/Library/Frameworks/SDL2.framework/Versions/A/Headers
LIBS = -F/Library/Frameworks -framework SDL2
PACKAGE = MacOSX
else
# Linux
ifneq ("$(wildcard $(LINUXSDL)/SDL.h)","")
CFLAGS = -I$(LINUXSDL)
LIBS = -lSDL2
PACKAGE = Linux
else
# Windows MinGW
ifneq ("$(wildcard $(MINGWSDL)/i686-w64-mingw32/include/SDL2/SDL.h)","")
CFLAGS = -I$(MINGWSDL)/i686-w64-mingw32/include/SDL2
LIBDIRS = -static-libgcc -L$(MINGWSDL)/i686-w64-mingw32/lib
LIBS = -lSDL2 -luser32
OBJS += resource.o
PACKAGE = Win
CC = gcc
endif
endif
endif
endif
CFLAGS += -Wall -Wextra -ansi -pedantic -D_$(PACKAGE)_=1
all: configure data.h $(OBJS) $(TARGET)
configure:
ifeq ("$(LIBS)","")
@echo "No headers found, ui driver cannot be detected. Install libsdl2-dev."
@echo "Also check if the header files are in MINGSDL or MACSDL paths."
@echo "Try to run 'find / -name SDL.h' in a terminal to find the header."
@false
endif
data.h: bin2h.c icons.png font.psf.gz
@$(CC) bin2h.c -o bin2h
./bin2h icons.png font.psf.gz ../mt-mod/mtsedit >data.h
@rm bin2h bin2h.exe 2>/dev/null || true
resource.o:
windres -i ../etc/resource.rc -o resource.o
bzip2.o: bzip2.c
$(CC) $(CFLAGS) -Wno-implicit-fallthrough -c -o $@ $<
%: %.c main.h lang.h data.h
$(CC) $(CFLAGS) $< -c $@
$(TARGET): $(OBJS)
$(CC) $(LIBDIRS) $(OBJS) -o $(TARGET) $(LIBS)
install: $(TARGET)
install -m 755 -g bin $(TARGET) $(INSTDIR)/bin
@mkdir -p $(INSTDIR)/share/mtsedit
cp ../data/* $(INSTDIR)/share/mtsedit
cp ../etc/mtsedit.desktop $(INSTDIR)/share/applications
cp ../etc/mtsedit.png $(INSTDIR)/share/icons/hicolor/32x32/apps
package:
ifeq ("$(PACKAGE)","Linux")
@mkdir usr usr/bin usr/share usr/share/mtsedit usr/share/applications usr/share/icons usr/share/icons/hicolor usr/share/icons/hicolor/32x32 usr/share/icons/hicolor/32x32/apps
@cp $(TARGET) usr/bin
@cp -r ../data/* usr/share/mtsedit
@cp ../etc/mtsedit.desktop usr/share/applications
@cp ../etc/mtsedit.png usr/share/icons/hicolor/32x32/apps
tar -czvf ../$(TARGET)-x86_64-linux.tgz usr
@rm -rf usr
else
ifeq ("$(PACKAGE)","Win")
@mkdir MTSEdit
@cp $(TARGET).exe MTSEdit/$(TARGET).exe
@cp ../etc/MTSEdit.lnk MTSEdit
@cp $(MINGWSDL)/i686-w64-mingw32/bin/SDL2.dll MTSEdit/SDL2.dll
@cp -r ../data MTSEdit/data
zip -r ../$(TARGET)-i686-win.zip MTSEdit
@rm -rf MTSEdit
else
@mkdir MTSEdit.app MTSEdit.app/Contents MTSEdit.app/Contents/MacOS MTSEdit.app/Contents/Resources
@cp $(TARGET) MTSEdit.app/Contents/MacOS
@cp ../etc/Info.plist MTSEdit.app/Contents
@cp ../etc/mtsedit.icns MTSEdit.app/Contents/Resources
@cp -r ../data MTSEdit.app/Contents/Resources
zip -r ../$(TARGET)-intel-macosx.zip MTSEdit.app
@rm -rf MTSEdit.app
endif
endif
clean:
@rm $(TARGET) $(TARGET).exe data.h *.o 2>/dev/null || true