diff --git a/Makefile.am b/Makefile.am index 77ed0deb..46da0441 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,8 @@ EXTRA_DIST = \ geany.desktop.in \ geany.spec \ geany.glade \ + geany_windres.rc \ + geany_windres.h \ geany.gladep \ data/global.tags \ data/php.tags \ @@ -40,7 +42,6 @@ install-data-local: fi \ done - dist-hook: if test -d pixmaps; then \ mkdir $(distdir)/pixmaps; \ @@ -51,6 +52,19 @@ dist-hook: done \ fi +if MINGW +install-win32: + GEANY_INSTALL_DIR=geany; \ + mkdir $(GEANY_INSTALL_DIR); \ + cp ChangeLog $(GEANY_INSTALL_DIR)/ChangeLog.txt; \ + cp TODO $(GEANY_INSTALL_DIR)/ToDo.txt; \ + cp COPYING $(GEANY_INSTALL_DIR)/ChangeLog.txt; \ + cp AUTHORS $(GEANY_INSTALL_DIR)/Authors.txt; \ + cp README $(GEANY_INSTALL_DIR)/ReadMe.txt; \ + cp THANKS $(GEANY_INSTALL_DIR)/Thanks.txt; \ + @# to be finished +endif + BZIP2_ENV =--best dist-bzip2: distdir diff --git a/configure.in b/configure.in index b7106b20..96fd9f2d 100644 --- a/configure.in +++ b/configure.in @@ -3,6 +3,9 @@ dnl $Id$ AC_INIT(configure.in) AM_INIT_AUTOMAKE(geany, 0.8) +MAJOR_VERSION="0" +MINOR_VERSION="8" + AM_CONFIG_HEADER(config.h) @@ -39,7 +42,7 @@ AC_C_VOLATILE # Checks for library functions. AC_FUNC_CLOSEDIR_VOID AC_FUNC_ERROR_AT_LINE -AC_REPLACE_FNMATCH +#AC_REPLACE_FNMATCH AC_FUNC_LSTAT AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_MALLOC @@ -48,7 +51,7 @@ AC_FUNC_REALLOC AC_TYPE_SIGNAL AC_FUNC_STAT AC_FUNC_VPRINTF -AC_CHECK_FUNCS([gethostname ftruncate fgetpos getcwd gettimeofday isascii mblen memset putenv realpath regcomp setenv strcasecmp strchr strdup strerror strrchr strspn strstr strtol]) +AC_CHECK_FUNCS([gethostname ftruncate fgetpos getcwd gettimeofday isascii mblen memset mkstemp putenv realpath regcomp setenv strcasecmp strchr strdup strerror strrchr strspn strstr strtol]) # autoscan end @@ -58,8 +61,10 @@ SVN=`which svn` if test -d ".svn" -a -x "${SVN}" then REVISION=r`$SVN info|grep 'Last Changed Rev'|cut -d' ' -f4` + VERSION_STRING="$VERSION ($REVISION)" else REVISION="-1" + VERSION_STRING="$VERSION" fi AC_DEFINE_UNQUOTED([REVISION], "$REVISION", [subversion revision number]) @@ -86,10 +91,6 @@ fi AC_ARG_ENABLE(vte, AC_HELP_STRING([--enable-vte],[enable if you want virtual termninal support [[default=yes]]]), [want_vte="$enableval"], [want_vte="yes"]) -if test "x$want_vte" = "xyes"; then - AC_DEFINE(HAVE_VTE, 1, [Define if you want VTE support]) -fi - # if test "$want_vte" = "yes"; then # PKG_CHECK_MODULES(VTE, [vte], # [AC_DEFINE(HAVE_VTE, 1, [Define if you want VTE support])], @@ -99,9 +100,19 @@ fi # [AC_MSG_ERROR([VTE support enabled, but VTE not found])], []) # fi -# Check for random number paths -AC_CHECK_FILE([/dev/urandom], AC_DEFINE([HAVE_DEVURANDOM], [1], [Define that you found /dev/urandom])) -AC_CHECK_FILE([/dev/random], AC_DEFINE([HAVE_DEVRANDOM], [1], [Define that you found /dev/random])) +# Check for random number paths (skip when cross compiling) +if test "x$build" = "x$target"; then + AC_CHECK_FILE([/dev/urandom], AC_DEFINE([HAVE_DEVURANDOM], [1], [Define that you found /dev/urandom])) + AC_CHECK_FILE([/dev/random], AC_DEFINE([HAVE_DEVRANDOM], [1], [Define that you found /dev/random])) +fi + +if test "x$target" = "xi386-mingw32msvc"; then + AC_DEFINE_UNQUOTED([WIN32], 1, [we are cross compiling for WIN32]) + want_vte="no" + AC_EXEEXT +fi +AM_CONDITIONAL(MINGW, test "x$target" = "xi386-mingw32msvc") + GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0` @@ -133,11 +144,19 @@ if test "x${datadir}" = 'x${prefix}/share'; then fi fi +if test "x$want_vte" = "xyes"; then + AC_DEFINE(HAVE_VTE, 1, [Define if you want VTE support]) +fi + GEANY_PIXMAPS_DIR=`eval echo ${datadir}/pixmaps` AC_SUBST(GEANY_PIXMAPS_DIR) GEANY_DATA_DIR=`eval echo ${datadir}/geany` AC_SUBST(GEANY_DATA_DIR) +AC_SUBST([MINOR_VERSION]) +AC_SUBST([MAJOR_VERSION]) +AC_SUBST([VERSION_STRING]) + AC_OUTPUT([ Makefile tagmanager/Makefile @@ -150,10 +169,16 @@ doc/Makefile doc/geany.1 geany.spec geany.desktop +geany_windres.rc ]) echo "----------------------------------------" echo "Install Geany in : ${prefix}" +if test "x${build}" != "x" -a "x${target}" != "x" +then + echo "Building Geany on : ${build}" + echo "Building Geany for : ${target}" +fi echo "Using GTK version : ${GTK_VERSION}" echo "Use virtual terminal support : ${want_vte}" echo "Use named pipe support : ${want_pipe}" diff --git a/geany_windres.rc.in b/geany_windres.rc.in new file mode 100644 index 00000000..57ffd213 --- /dev/null +++ b/geany_windres.rc.in @@ -0,0 +1,32 @@ + +#include // include for version info constants + + +A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "../pixmaps/geany.ico" + +1 VERSIONINFO +FILEVERSION @MAJOR_VERSION@,@MINOR_VERSION@,0,0 +PRODUCTVERSION @MAJOR_VERSION@,@MINOR_VERSION@,0,0 +FILETYPE VFT_APP +{ + BLOCK "StringFileInfo" + { + BLOCK "040704E4" + { + VALUE "CompanyName", "" + VALUE "FileVersion", "@VERSION_STRING@" + VALUE "FileDescription", "Small and lighweight IDE (built using mingw gcc)" + VALUE "InternalName", "geany" + VALUE "LegalCopyright", "Copyright 2005-2006 by Enrico Troeger" + VALUE "LegalTrademarks", "" + VALUE "OriginalFilename", "geany" + VALUE "ProductName", "geany" + VALUE "ProductVersion", "@VERSION_STRING@" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x0407, 1252 + } +} + diff --git a/scintilla/Makefile.am b/scintilla/Makefile.am index 3b6d5832..db3905bc 100644 --- a/scintilla/Makefile.am +++ b/scintilla/Makefile.am @@ -55,8 +55,11 @@ $(LEXER_SRCS) libscintilla_a_SOURCES = $(SRCS) -INCLUDES=-I$(top_srcdir) -Iinclude \ -@PACKAGE_CFLAGS@ +if MINGW +INCLUDES=-I$(top_srcdir) -Iinclude -I/usr/local/cross-tools/include @PACKAGE_CFLAGS@ +else +INCLUDES=-I$(top_srcdir) -Iinclude @PACKAGE_CFLAGS@ +endif libscintilla_a_LIBADD = scintilla-marshal.o diff --git a/src/Makefile.am b/src/Makefile.am index 7ff4895b..2599c31b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,18 +1,12 @@ ## Process this file with automake to produce Makefile.in # $Id$ -INCLUDES = \ - -DPACKAGE_DATA_DIR=\""$(datadir)"\" \ - -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ - -I../scintilla/include \ - -I../tagmanager/include \ - @PACKAGE_CFLAGS@ -EXTRA_DIST = images.c gb.c win32.c win32.h +EXTRA_DIST = images.c gb.c bin_PROGRAMS = geany -geany_SOURCES = \ +SRCS = \ main.c geany.h \ search.c search.h \ notebook.c notebook.h \ @@ -32,12 +26,42 @@ geany_SOURCES = \ sciwrappers.c sciwrappers.h \ document.c document.h \ utils.c utils.h \ - vte.c vte.h \ support.c support.h \ interface.c interface.h \ callbacks.c callbacks.h -#AM_CFLAGS = -Wall -pipe -#AM_CFLAGS = -DGEANY_DEBUG -Wall -pipe -AM_CFLAGS = -DGEANY_DEBUG -g -Wall -pipe + + +if MINGW +# build Geany for Windows +WINDRES = /usr/local/cross-tools/bin/i386-mingw32msvc-windres + +geany_SOURCES = $(SRCS) win32.c win32.h +geany_LDADD = ../scintilla/libscintilla.a ../tagmanager/libtagmanager.a -lstdc++ @PACKAGE_LIBS@ \ + $(INTLLIBS) -lgdi32 -limm32 -lshell32 -lole32 -luuid -liberty -lcomdlg32 -lcomctl32 \ + geany_windres.res +AM_CFLAGS = -DGEANY_DEBUG -Wall -pipe -mms-bitfields +#AM_CFLAGS = -DGEANY_DEBUG -Wall -pipe -mms-bitfields -g -O0 +geany_LDFLAGS = -mwindows + +INCLUDES = \ + -DPACKAGE_DATA_DIR=\"data\" -DPACKAGE_LOCALE_DIR=\"data\" -I../scintilla/include \ + -I../tagmanager/include @PACKAGE_CFLAGS@ + +geany_windres.res: + $(WINDRES) -i ../geany_windres.rc --input-format=rc -o geany_windres.res -O coff; + +else +# build Geany for all other platforms +AM_CFLAGS = -DGEANY_DEBUG -Wall -pipe +geany_SOURCES = $(SRCS) vte.c vte.h geany_LDADD = @PACKAGE_LIBS@ -lstdc++ ../scintilla/libscintilla.a ../tagmanager/libtagmanager.a $(INTLLIBS) + +INCLUDES = \ + -DPACKAGE_DATA_DIR=\""$(datadir)"\" -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \ + -I../scintilla/include -I../tagmanager/include @PACKAGE_CFLAGS@ + +endif + +#geany_SOURCES = $(SRCS) +#geany_LDADD = @PACKAGE_LIBS@ -lstdc++ ../scintilla/libscintilla.a ../tagmanager/libtagmanager.a $(INTLLIBS) diff --git a/src/callbacks.c b/src/callbacks.c index 19b58196..c22e27ce 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1232,7 +1232,7 @@ on_to_upper_case1_activate (GtkMenuItem *menuitem, gchar *text; if (idx < 0) return; - text = malloc(sci_get_selected_text_length(doc_list[idx].sci) + 1); + text = g_malloc(sci_get_selected_text_length(doc_list[idx].sci) + 1); sci_get_selected_text(doc_list[idx].sci, text); sci_replace_sel(doc_list[idx].sci, g_ascii_strup(text, -1)); g_free(text); diff --git a/tagmanager/ctags.c b/tagmanager/ctags.c index 01db6eac..ec5ad88e 100644 --- a/tagmanager/ctags.c +++ b/tagmanager/ctags.c @@ -20,6 +20,7 @@ * INCLUDE FILES */ #include "general.h" /* must always come first */ +#include #ifdef HAVE_STDLIB_H # include /* to declare malloc (), realloc () */ @@ -341,7 +342,7 @@ extern char* eStrdup (const char* str) extern void *eMalloc (const size_t size) { - void *buffer = malloc (size); + void *buffer = g_malloc (size); if (buffer == NULL) error (FATAL, "out of memory"); @@ -366,7 +367,7 @@ extern void *eRealloc (void *const ptr, const size_t size) buffer = eMalloc (size); else { - buffer = realloc (ptr, size); + buffer = g_realloc (ptr, size); if (buffer == NULL) error (FATAL, "out of memory"); } diff --git a/tagmanager/get.c b/tagmanager/get.c index f55fa681..2bac4eda 100644 --- a/tagmanager/get.c +++ b/tagmanager/get.c @@ -13,6 +13,7 @@ * INCLUDE FILES */ #include "general.h" /* must always come first */ +#include #include @@ -637,7 +638,7 @@ extern char *getArglistFromPos(fpos_t startPosition, const char *tokenName) pos1 = ftell(File.fp); if (pos2 > pos1) { - result = (char *) malloc(sizeof(char ) * (pos2 - pos1 + 2)); + result = (char *) g_malloc(sizeof(char ) * (pos2 - pos1 + 2)); if (result != NULL) { fread(result, sizeof(char), pos2 - pos1 + 1, File.fp); @@ -664,7 +665,7 @@ static void stripCodeBuffer(char *buf) { int i = 0, pos = 0; ParseState state = st_none_t, prev_state = st_none_t; - + while (buf[i] != '\0') { switch(buf[i]) diff --git a/tagmanager/tm_work_object.c b/tagmanager/tm_work_object.c index 5944d668..269aac66 100644 --- a/tagmanager/tm_work_object.c +++ b/tagmanager/tm_work_object.c @@ -7,6 +7,8 @@ * */ +#include "general.h" /* must always come first */ + #include #include #include @@ -25,7 +27,7 @@ gchar *tm_get_real_path(const gchar *file_name) gchar path[PATH_MAX+1]; memset(path, '\0', PATH_MAX+1); #ifdef G_OS_WIN32 - return lrealpath(file_name, path); + return lrealpath(file_name); #else realpath(file_name, path); #endif