diff options
-rw-r--r-- | src/Makefile | 107 | ||||
-rw-r--r-- | src/lua_interface.c | 2 | ||||
-rw-r--r-- | src/textadept.c | 21 | ||||
-rw-r--r-- | src/textadept.rc | 28 |
4 files changed, 121 insertions, 37 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 diff --git a/src/lua_interface.c b/src/lua_interface.c index 24a08c23..4c585f40 100644 --- a/src/lua_interface.c +++ b/src/lua_interface.c @@ -129,7 +129,7 @@ int l_init(int argc, char **argv, int reinit) { lua_setglobal(lua, "arg"); lua_pushstring(lua, textadept_home); lua_setglobal(lua, "_HOME"); -#if WIN32 +#if __WIN32__ lua_pushboolean(lua, 1); lua_setglobal(lua, "WIN32"); #elif MAC diff --git a/src/textadept.c b/src/textadept.c index 48bbbb54..bace5a19 100644 --- a/src/textadept.c +++ b/src/textadept.c @@ -1,8 +1,9 @@ // Copyright 2007-2009 Mitchell mitchell<att>caladbolg.net. See LICENSE. #include "textadept.h" -#if WIN32 -#include <Windows.h> +#if __WIN32__ +#include <windows.h> +#define main main_ #elif MAC #include <Carbon/Carbon.h> #include "ige-mac-menu.h" @@ -24,7 +25,7 @@ static gbool s_buttonpress(GtkWidget *, GdkEventButton *, gpointer); static gbool w_focus(GtkWidget *, GdkEventFocus *, gpointer); static gbool w_keypress(GtkWidget *, GdkEventKey *, gpointer); static gbool w_exit(GtkWidget *, GdkEventAny *, gpointer); -#ifdef MAC +#if MAC static OSErr w_ae_open(const AppleEvent *, AppleEvent *, long); static OSErr w_ae_quit(const AppleEvent *, AppleEvent *, long); #endif @@ -79,7 +80,7 @@ static gbool c_keypress(GtkWidget *, GdkEventKey *, gpointer); * @param argv The array of command line params. */ int main(int argc, char **argv) { -#if !(WIN32 || MAC) +#if !(__WIN32__ || MAC) textadept_home = g_file_read_link("/proc/self/exe", NULL); #elif MAC CFBundleRef bundle = CFBundleGetMainBundle(); @@ -103,7 +104,7 @@ int main(int argc, char **argv) { return 0; } -#ifdef WIN32 +#if __WIN32__ /** * Runs Textadept in Windows. * @see main @@ -149,7 +150,7 @@ void create_ui() { signal(window, "focus-in-event", w_focus); signal(window, "key-press-event", w_keypress); -#ifdef MAC +#if MAC AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments, NewAEEventHandlerUPP(w_ae_open), 0, FALSE); AEInstallEventHandler(kCoreEventClass, kAEQuitApplication, @@ -206,7 +207,7 @@ void create_ui() { docstatusbar = gtk_statusbar_new(); gtk_statusbar_push(GTK_STATUSBAR(docstatusbar), 0, ""); g_object_set(G_OBJECT(docstatusbar), "width-request", 400, NULL); -#ifdef MAC +#if MAC gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(docstatusbar), FALSE); #endif gtk_box_pack_start(GTK_BOX(hboxs), docstatusbar, FALSE, FALSE, 0); @@ -393,7 +394,7 @@ void set_menubar(GtkWidget *new_menubar) { gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); gtk_box_reorder_child(GTK_BOX(vbox), menubar, 0); gtk_widget_show_all(menubar); -#ifdef MAC +#if MAC ige_mac_menu_set_menu_bar(GTK_MENU_SHELL(menubar)); gtk_widget_hide(menubar); #endif @@ -458,7 +459,7 @@ static gbool s_keypress(GtkWidget *editor, GdkEventKey *event, gpointer udata) { LUA_TNUMBER, event->keyval, LUA_TBOOLEAN, event->state & GDK_SHIFT_MASK, LUA_TBOOLEAN, event->state & GDK_CONTROL_MASK, -#ifndef MAC +#if MAC LUA_TBOOLEAN, event->state & GDK_MOD1_MASK, #else LUA_TBOOLEAN, event->state & GDK_META_MASK, @@ -515,7 +516,7 @@ static gbool w_exit(GtkWidget *window, GdkEventAny *event, gpointer udata) { return FALSE; } -#ifdef MAC +#if MAC /** * Signal for an Open Document AppleEvent. * Generates a 'appleevent_odoc' event for each document sent. diff --git a/src/textadept.rc b/src/textadept.rc new file mode 100644 index 00000000..b8f037d3 --- /dev/null +++ b/src/textadept.rc @@ -0,0 +1,28 @@ +#include "winver.h"
+
+textadept ICON "../core/images/textadept.ico\0"
+
+VS_VERSION_INFO VERSIONINFO
+FILEVERSION 1, 9, 0, 0
+PRODUCTVERSION 1, 9, 0, 0
+FILEFLAGSMASK 0x3fL
+FILEFLAGS 0
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
+FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "Mitchell\0"
+ VALUE "FileDescription", "textadept\0"
+ VALUE "FileVersion", "1.9\0"
+ VALUE "InternalName", "textadept\0"
+ VALUE "LegalCopyright", "Copyright 2006-2009 by Mitchell\0"
+ VALUE "OriginalFilename", "textadept.exe\0"
+ VALUE "ProductName", "textadept\0"
+ VALUE "ProductVersion", "1.9\0"
+ END
+ END
+END
|