aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile107
1 files changed, 81 insertions, 26 deletions
diff --git a/src/Makefile b/src/Makefile
index 07adba53..98095e4b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,36 +1,91 @@
# Copyright 2007-2009 Mitchell mitchell<att>caladbolg.net. See LICENSE.
-.SUFFIXES: .c .o .h .a
+.SUFFIXES: .c .o .h .a .cxx
-INCLUDEDIRS=-Iscintilla-st/include -Ilua/include -Igcocoadialog
-ifdef DEBUG
-CXXFLAGS=-DDEBUG -g -DGTK -DSCI_LEXER -W -Wall
+ifndef WIN32
+CC = gcc
+CPP = g++
+PKG_CONFIG = pkg-config
+PKG_CONFIG_PATH = $PKG_CONFIG_PATH
+PLAT_FLAGS = -DGTK
+SCI_THREAD_FLAG =
+LUA_CFLAGS = -DLUA_USE_LINUX
+TEXTADEPT = textadept
+TEXTADEPT_RC =
else
-CXXFLAGS=-DNDEBUG -O -DGTK -DSCI_LEXER -W -Wall -Wno-sign-compare -Wno-unused
+CC = i486-mingw32-gcc -mms-bitfields
+CPP = i486-mingw32-g++ -mms-bitfields -mwindows
+PKG_CONFIG = pkg-config --define-variable=prefix=win32gtk
+PKG_CONFIG_PATH = $(shell pwd)/win32gtk/lib/pkgconfig
+PLAT_FLAGS = -DGTK -D__WIN32__
+SCI_THREAD_FLAG = -DG_THREADS_IMPL_NONE
+LUA_CFLAGS = -D_WIN32 -DWIN32
+TEXTADEPT = textadept.exe
+TEXTADEPT_RC = textadept_rc.o
+WINDRES = i486-mingw32-windres
endif
-GTKFLAGS=$(shell pkg-config --cflags gtk+-2.0)
-GTKLIBS=$(shell pkg-config --libs gtk+-2.0 gthread-2.0)
-EXPORTLUASYMS=-rdynamic -Wl,--retain-symbols-file -Wl,lua.sym
-
-LUA_OBJS = lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
- lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o \
- ltable.o ltm.o lundump.o lvm.o lzio.o \
- lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o ltablib.o \
- lstrlib.o loadlib.o loslib.o linit.o \
+
+ifndef DEBUG
+DEBUG_FLAG = -DNDEBUG
+else
+DEBUG_FLAG = -DDEBUG -g
+endif
+INCLUDEDIRS = -Iscintilla-st/include -Ilua/include -Igcocoadialog
+
+# Textadept
+
+CFLAGS = -std=c99 $(DEBUG_FLAG) -O $(PLAT_FLAGS) $(INCLUDEDIRS) -W -Wall \
+ -Wno-sign-compare -Wno-unused
+GTKFLAGS = $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) \
+ --cflags gtk+-2.0)
+GTKLIBS = $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) \
+ --libs gtk+-2.0 gthread-2.0)
+EXPORTLUASYMS = -rdynamic -Wl,--retain-symbols-file -Wl,lua.sym
+
+TEXTADEPT_OBJS = textadept.o lua_interface.o
+LUA_OBJS = lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o \
+ lvm.o lzio.o \
+ lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o ltablib.o lstrlib.o \
+ loadlib.o loslib.o linit.o \
lpeg.o lfs.o
+GCOCOADIALOG = gcocoadialog.o
+
+# Scintilla
+
+SCI_CXXFLAGS = $(DEBUG_FLAG) -pedantic -Os $(PLAT_FLAGS) -DSCI_LEXER \
+ $(SCI_THREAD_FLAG) $(INCLUDEDIRS) -Iscintilla-st/src -Iscintilla-st/gtk \
+ -Wall -Wno-missing-braces -Wno-char-subscripts
+
+SCINTILLA_OBJS = AutoComplete.o CallTip.o CellBuffer.o CharClassify.o \
+ ContractionState.o Decoration.o Document.o DocumentAccessor.o Editor.o \
+ ExternalLexer.o Indicator.o KeyMap.o KeyWords.o LexLPeg.o LineMarker.o \
+ PerLine.o PositionCache.o PropSet.o RESearch.o RunStyles.o ScintillaBase.o \
+ Style.o StyleContext.o UniConversion.o ViewStyle.o WindowAccessor.o XPM.o \
+ PlatGTK.o ScintillaGTK.o
+SCINTILLA_MARSHALLER = scintilla-marshal.o
+
+# Build
-all: textadept
+all: $(TEXTADEPT)
-.c.o:
- gcc -std=c99 $(GTKFLAGS) $(INCLUDEDIRS) $(CXXFLAGS) -c $< -o $@
+$(SCINTILLA_OBJS): scintilla-st/gtk/*.cxx scintilla-st/src/*.cxx
+ $(CPP) $(SCI_CXXFLAGS) $(GTKFLAGS) -c $^
+$(SCINTILLA_MARSHALLER): scintilla-st/gtk/scintilla-marshal.c
+ $(CC) $(SCI_CXXFLAGS) $(GTKFLAGS) -w -c $^
+$(TEXTADEPT_OBJS): *.c
+ $(CC) $(CFLAGS) $(GTKFLAGS) -c $^
$(LUA_OBJS): lua/src/*.c
- gcc $(INCLUDEDIRS) -DLUA_USE_LINUX -c lua/src/*.c
-gcocoadialog.o: gcocoadialog/gcocoadialog.c
- gcc $(GTKFLAGS) $(INCLUDEDIRS) -c gcocoadialog/gcocoadialog.c
-textadept:\
- textadept.o lua_interface.o $(LUA_OBJS) gcocoadialog.o \
- scintilla-st/gtk/LexLPeg.o scintilla-st/bin/scintilla.a
- g++ $(GTKLIBS) $(EXPORTLUASYMS) -DGTK $^ -o $@
- mv textadept ../
+ $(CC) $(LUA_CFLAGS) $(INCLUDEDIRS) -c $^
+$(GCOCOADIALOG): gcocoadialog/gcocoadialog.c
+ $(CC) $(GTKFLAGS) $(INCLUDEDIRS) -c $^
+$(TEXTADEPT):\
+ $(SCINTILLA_OBJS) $(SCINTILLA_MARSHALLER) \
+ $(TEXTADEPT_OBJS) $(LUA_OBJS) $(GCOCOADIALOG) \
+ $(TEXTADEPT_RC)
+ $(CPP) $(EXPORTLUASYMS) -o $@ $^ $(GTKLIBS)
+ mv $(TEXTADEPT) ../
+$(TEXTADEPT_RC): textadept.rc
+ $(WINDRES) $^ $@
clean:
- rm ../textadept *.o
+ rm ../$(TEXTADEPT) *.o