Add makefiles for building on win32

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@646 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Nick Treleaven 2006-07-28 12:29:10 +00:00
parent 1eb2990012
commit 6cb83f8af0
7 changed files with 625 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2006-07-28 Nick Treleaven <nick.treleaven@btinternet.com>
* src/sciwrappers.h: Set PLAT_GTK before including ScintillaWidget.h.
* src/Makefile.am, geany_windres.rc.in: Correct a typo.
* scintilla/makefile.win32, src/makefile.win32, makefile.win32,
tagmanager/makefile.win32, win32-config.h, geany_private.rc:
Add makefiles for building on win32.
2006-07-27 Enrico Tröger <enrico.troeger@uvena.de> 2006-07-27 Enrico Tröger <enrico.troeger@uvena.de>
* src/sciwrappers.c, src/callbacks.c, src/utils.c, src/dialogs.c, * src/sciwrappers.c, src/callbacks.c, src/utils.c, src/dialogs.c,

32
geany_private.rc Normal file
View File

@ -0,0 +1,32 @@
#include <windows.h> // include for version info constants
A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "../pixmaps/geany.ico"
1 VERSIONINFO
FILEVERSION 0,7,9,0
PRODUCTVERSION 0,7,9,0
FILETYPE VFT_APP
{
BLOCK "StringFileInfo"
{
BLOCK "040704E4"
{
VALUE "CompanyName", ""
VALUE "FileVersion", "0.8svn"
VALUE "FileDescription", "Small and lightweight 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", "0.8svn"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0407, 1252
}
}

47
makefile.win32 Normal file
View File

@ -0,0 +1,47 @@
# Running make creates config.h then calls the sub makefiles.
#
# Other targets are:
# deps: delete the dependencies so they are regenerated on next make
# clean: clean all generated files
#
# localwin32.mk is an optional file to override make variables.
# Use localwin32.mk instead of editing variables as it is included in sub
# makefiles.
# localwin32.mk to set PREFIX instead of the default C:\libs
# For MSYS use localwin32.mk to set CP and RM.
# By default this will work in a Windows command prompt.
WINDRES = windres.exe
CC = gcc
CXX = g++
CP = copy
RM = del
-include localwin32.mk
# Note: && is needed after cd because each line is executed in a different
# shell. (cd .. is just for clarity).
all: check-tools config.h
cd tagmanager && make -f makefile.win32 && cd ..
cd scintilla && make -f makefile.win32 && cd ..
cd src && make -f makefile.win32 && cd ..
# first check the required tools are installed
check-tools:
$(WINDRES) --version
$(CC) --version
$(CXX) --version
config.h: win32-config.h
$(CP) $< $@
deps:
$(RM) tagmanager\deps.mak scintilla\deps.mak src\deps.mak
# used by src/makefile.win32 to avoid del ../file which is an error
clean-local:
$(RM) geany_private.res geany.exe
clean:
cd tagmanager && make -f makefile.win32 clean && cd ..
cd scintilla && make -f makefile.win32 clean && cd ..
cd src && make -f makefile.win32 clean && cd ..

84
scintilla/makefile.win32 Normal file
View File

@ -0,0 +1,84 @@
# Make file for Scintilla on Linux or compatible OS
# Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
# The License.txt file describes the conditions under which this software may be distributed.
# This makefile assumes GCC 3.1 is used and changes will be needed to use other compilers.
# GNU make does not like \r\n line endings so should be saved to CVS in binary form.
# Builds for GTK+ 2 if available else GTK+ 1.
# To force GTK+ 2 build, define GTK2 on the make command line.
# To force GTK+ 1 build, define GTK1 on the make command line.
.SUFFIXES: .cxx .c .o .h .a
CC = g++
CCOMP = gcc
AR = ar
RANLIB = ranlib
PREFIX = C:\libs
RM = del
-include ../localwin32.mk
COMPLIB=scintilla.a
GTK_INCLUDES= \
-I$(PREFIX)/include/gtk-2.0 \
-I$(PREFIX)/lib/gtk-2.0/include \
-I$(PREFIX)/include/atk-1.0 \
-I$(PREFIX)/include/pango-1.0 \
-I$(PREFIX)/include/cairo \
-I$(PREFIX)/include/glib-2.0 \
-I$(PREFIX)/lib/glib-2.0/include \
-I$(PREFIX)/include/gettext \
-I$(PREFIX)/include
vpath %.h . include
vpath %.cxx .
INCLUDEDIRS=-I include -I . $(GTK_INCLUDES)
CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -DGTK -DGTK2 -DSCI_LEXER $(INCLUDEDIRS) -mms-bitfields
ifdef NOTHREADS
THREADFLAGS=-DG_THREADS_IMPL_NONE
else
THREADFLAGS=
endif
ifdef DEBUG
CXXFLAGS=-DDEBUG -g $(CXXBASEFLAGS) $(THREADFLAGS)
else
CXXFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS) $(THREADFLAGS)
endif
CONFIGFLAGS=$(GTK_INCLUDES)
MARSHALLER=scintilla-marshal.o
.cxx.o:
$(CC) $(CXXFLAGS) -c $<
.c.o:
$(CCOMP) $(CXXFLAGS) -w -c $<
#++Autogenerated -- run src/LexGen.py to regenerate
#**LEXOBJS=\\\n\(\*.o \)
LEXOBJS=\
LexBash.o LexAsm.o LexCSS.o LexConf.o LexCPP.o LexCrontab.o LexHTML.o LexOthers.o LexPascal.o \
LexPerl.o LexPython.o LexSQL.o LexCaml.o LexOMS.o LexTCL.o LexRuby.o
#--Autogenerated -- end of automatically generated section
all: $(COMPLIB)
clean:
$(RM) deps.mak *.o $(COMPLIB)
$(COMPLIB): DocumentAccessor.o WindowAccessor.o KeyWords.o StyleContext.o Document.o CallTip.o \
ScintillaBase.o ContractionState.o Editor.o ExternalLexer.o PropSet.o PlatGTK.o \
KeyMap.o LineMarker.o ScintillaGTK.o CellBuffer.o ViewStyle.o \
RESearch.o Style.o Indicator.o AutoComplete.o UniConversion.o CharClassify.o XPM.o \
$(MARSHALLER) $(LEXOBJS)
$(AR) rc $@ $^
$(RANLIB) $@
deps.mak:
$(CC) -MM $(CXXFLAGS) *.cxx >deps.mak
# Generate header dependencies with "make deps.mak"
include deps.mak

84
src/makefile.win32 Normal file
View File

@ -0,0 +1,84 @@
# per hand geschrieben, nicht hauen!
# Note: PACKAGE_DATA_DIR and PACKAGE_LOCALE_DIR are no longer used on Windows.
DEFINES = -DPACKAGE_DATA_DIR=\"data\" \
-DHAVE_CONFIG_H \
-DPACKAGE_LOCALE_DIR=\"data\" \
-DENABLE_NLS
.SUFFIXES: .c .o .h .a
WINDRES = windres.exe
CC = gcc
CXX = g++
RES = ../geany_private.res
TARGET = ../geany.exe
EXECDIR = c:\distrib
PREFIX = C:\libs
RM = del
-include ../localwin32.mk
GTK_INCLUDES= \
-I$(PREFIX)/include/gtk-2.0 \
-I$(PREFIX)/lib/gtk-2.0/include \
-I$(PREFIX)/include/atk-1.0 \
-I$(PREFIX)/include/pango-1.0 \
-I$(PREFIX)/include/cairo \
-I$(PREFIX)/include/glib-2.0 \
-I$(PREFIX)/lib/glib-2.0/include \
-I$(PREFIX)/include/gettext \
-I$(PREFIX)/include
INCLUDEDIRS= -I.. \
-I../scintilla/include \
-I../tagmanager/include \
$(GTK_INCLUDES)
ALL_GTK_LIBS= \
-L"$(PREFIX)/lib" \
-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 \
-lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl -liconv
# these things are for GTK >= 2.8
# (should be same as with MSYS: pkg-config --libs gtk+-2.0 gthread-2.0)
#"$(PREFIX)/lib/libcairo.dll.a" \
#"$(PREFIX)/lib/asprintf.lib" \
#"$(PREFIX)/lib/charset.lib" \
CCFLAGS=-Wall -O2 -g -mms-bitfields $(DEFINES) $(INCLUDEDIRS)
OBJS = treeviews.o templates.o encodings.o about.o prefs.o win32.o build.o msgwindow.o dialogs.o \
filetypes.o interface.o main.o support.o callbacks.o utils.o \
highlighting.o sci_cb.o document.o sciwrappers.o keyfile.o keybindings.o search.o notebook.o
.c.o:
$(CC) $(CCFLAGS) -c $<
# all: binclean $(TARGET) #exec
all: $(TARGET)
$(RES): ../geany_private.rc ../pixmaps/geany.ico
$(WINDRES) -i $< --input-format=rc -o $@ -O coff
# this calls parent clean-local target because del ../file won't work
clean:
$(RM) deps.mak *.o
cd .. && make -f makefile.win32 clean-local && cd src
exec:
$(EXECDIR)\geany.exe
binclean:
$(RM) $(TARGET)
$(TARGET): $(OBJS) $(RES) ../scintilla/scintilla.a ../tagmanager/tagmanager.a
$(CXX) $(OBJS) $(RES) -o $(TARGET) \
../scintilla/scintilla.a ../tagmanager/tagmanager.a $(ALL_GTK_LIBS) \
-mwindows -limm32 -lshell32 -lole32 -luuid -lcomdlg32 -lcomctl32 -liberty
deps.mak:
$(CC) -MM $(CCFLAGS) *.c >deps.mak
# Generate header dependencies with "make deps.mak"
include deps.mak
..\localwin32.mk:
echo # Set local variables here >$@

47
tagmanager/makefile.win32 Normal file
View File

@ -0,0 +1,47 @@
.SUFFIXES: .cxx .c .o .h .a
CC = gcc
AR = ar
RANLIB = ranlib
PREFIX = C:\libs
RM = del
-include ../localwin32.mk
COMPLIB=tagmanager.a
GTK_INCLUDES= \
-I$(PREFIX)/include/gtk-2.0 \
-I$(PREFIX)/lib/gtk-2.0/include \
-I$(PREFIX)/include/atk-1.0 \
-I$(PREFIX)/include/pango-1.0 \
-I$(PREFIX)/include/cairo \
-I$(PREFIX)/include/glib-2.0 \
-I$(PREFIX)/lib/glib-2.0/include \
-I$(PREFIX)/include/gettext \
-I$(PREFIX)/include
INCLUDEDIRS=-I include $(GTK_INCLUDES)
CCFLAGS=-g -Wall -DPACKAGE=\"geany\" -DG_OS_WIN32 -Wno-missing-braces -Wno-char-subscripts $(INCLUDEDIRS) -mms-bitfields
.c.o:
$(CC) $(CCFLAGS) -w -c $<
all: $(COMPLIB)
clean:
$(RM) deps.mak *.o $(COMPLIB)
$(COMPLIB): args.o c.o d.o make.o conf.o pascal.o perl.o php.o \
python.o regex.o sh.o ctags.o entry.o get.o keyword.o options.o parse.o \
read.o sort.o strlist.o latex.o docbook.o tcl.o ruby.o asm.o sql.o css.o vstring.o tm_workspace.o tm_work_object.o \
tm_source_file.o tm_project.o tm_tag.o tm_symbol.o tm_file_entry.o \
tm_tagmanager.o
$(AR) rc $@ $^
$(RANLIB) $@
deps.mak:
$(CC) -MM $(CCFLAGS) *.c >deps.mak
# Generate header dependencies with "make deps.mak"
include deps.mak

322
win32-config.h Normal file
View File

@ -0,0 +1,322 @@
/* config.h. Generated by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
/* Define to 1 if the `closedir' function returns void instead of `int'. */
/* #undef CLOSEDIR_VOID */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
/* #undef CRAY_STACKSEG_END */
/* Define to 1 if using `alloca.c'. */
/* #undef C_ALLOCA */
/* always defined to indicate that i18n is enabled */
#define ENABLE_NLS 1
/* Gettext package. */
#define GETTEXT_PACKAGE "geany"
/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
#define HAVE_ALLOCA_H 1
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#define HAVE_BIND_TEXTDOMAIN_CODESET 1
/* Define to 1 if you have the `btowc' function. */
/* #undef HAVE_BTOWC */
/* Define to 1 if you have the `dcgettext' function. */
#define HAVE_DCGETTEXT 1
/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
*/
/* #undef HAVE_DECL_GETENV */
/* Define that you found /dev/random */
//#define HAVE_DEVRANDOM 1
/* Define that you found /dev/urandom */
//#define HAVE_DEVURANDOM 1
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#define HAVE_DIRENT_H 1
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
/* #undef HAVE_DOPRNT */
/* Define to 1 if you have the <fcntl.h> header file. */
//#define HAVE_FCNTL_H 1
/* Define to 1 if you have the `fgetpos' function. */
#define HAVE_FGETPOS 1
/* Define if you want to detect a running instance */
//#define HAVE_FIFO 1
/* Define to 1 if you have the <fnmatch.h> header file. */
#define HAVE_FNMATCH_H 1
/* Define to 1 if you have the `ftruncate' function. */
#define HAVE_FTRUNCATE 1
/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1
/* Define to 1 if you have the `gethostname' function. */
//#define HAVE_GETHOSTNAME 1
/* Define to 1 if you have the `getpagesize' function. */
#define HAVE_GETPAGESIZE 1
/* Define if the GNU gettext() function is already present or preinstalled. */
#define HAVE_GETTEXT 1
/* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the <glob.h> header file. */
#define HAVE_GLOB_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `isascii' function. */
#define HAVE_ISASCII 1
/* Define if your <locale.h> file defines LC_MESSAGES. */
#define HAVE_LC_MESSAGES 1
/* Define to 1 if you have the <libintl.h> header file. */
#define HAVE_LIBINTL_H 1
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define to 1 if `lstat' has the bug that it succeeds when given the
zero-length file name argument. */
/* #undef HAVE_LSTAT_EMPTY_STRING_BUG */
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#define HAVE_MALLOC 1
/* Define to 1 if you have the `mblen' function. */
#define HAVE_MBLEN 1
/* Define to 1 if you have the `mbsrtowcs' function. */
/* #undef HAVE_MBSRTOWCS */
/* Define to 1 if <wchar.h> declares mbstate_t. */
#define HAVE_MBSTATE_T 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mempcpy' function. */
/* #undef HAVE_MEMPCPY */
/* Define to 1 if you have the `memset' function. */
#define HAVE_MEMSET 1
/* Define to 1 if you have a working `mmap' system call. */
//#define HAVE_MMAP 1
/* Define to 1 if you have the `munmap' function. */
//#define HAVE_MUNMAP 1
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the `putenv' function. */
#define HAVE_PUTENV 1
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#define HAVE_REALLOC 1
/* Define to 1 if you have the `realpath' function. */
#define HAVE_REALPATH 1
/* Define to 1 if you have the `regcomp' function. */
#define HAVE_REGCOMP 1
/* Define to 1 if you have the `setenv' function. */
#define HAVE_SETENV 1
/* Define to 1 if `stat' has the bug that it succeeds when given the
zero-length file name argument. */
/* #undef HAVE_STAT_EMPTY_STRING_BUG */
/* Define to 1 if stdbool.h conforms to C99. */
#define HAVE_STDBOOL_H 1
/* Define to 1 if you have the <stddef.h> header file. */
#define HAVE_STDDEF_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strcasecmp' function. */
#define HAVE_STRCASECMP 1
/* Define to 1 if you have the `strchr' function. */
#define HAVE_STRCHR 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strrchr' function. */
#define HAVE_STRRCHR 1
/* Define to 1 if you have the `strspn' function. */
#define HAVE_STRSPN 1
/* Define to 1 if you have the `strstr' function. */
#define HAVE_STRSTR 1
/* Define to 1 if you have the `strtol' function. */
#define HAVE_STRTOL 1
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#define HAVE_SYS_WAIT_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if you have the `vprintf' function. */
#define HAVE_VPRINTF 1
/* Define if you want VTE support */
//#define HAVE_VTE 1
/* Define to 1 if you have the <wchar.h> header file. */
/* #undef HAVE_WCHAR_H */
/* Define to 1 if you have the <wctype.h> header file. */
/* #undef HAVE_WCTYPE_H */
/* Define to 1 if you have the `wmempcpy' function. */
/* #undef HAVE_WMEMPCPY */
/* Define to 1 if the system has the type `_Bool'. */
#define HAVE__BOOL 1
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
slash. */
#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
/* Name of package */
#define PACKAGE "geany"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME ""
/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""
/* Define to the version of this package. */
#define PACKAGE_VERSION ""
/* Define as the return type of signal handlers (`int' or `void'). */
#define RETSIGTYPE void
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
/* #undef TM_IN_SYS_TIME */
/* Version number of package */
#define VERSION "0.8"
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to rpl_fnmatch if the replacement function should be used. */
/* #undef fnmatch */
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif
/* Define to rpl_malloc if the replacement function should be used. */
/* #undef malloc */
/* Define to a type if <wchar.h> does not define. */
/* #undef mbstate_t */
/* Define to `long' if <sys/types.h> does not define. */
/* #undef off_t */
/* Define to rpl_realloc if the replacement function should be used. */
/* #undef realloc */
/* Define to `unsigned' if <sys/types.h> does not define. */
/* #undef size_t */
/* Define to empty if the keyword `volatile' does not work. Warning: valid
code using `volatile' can become incorrect without. Disable with care. */
/* #undef volatile */
#define REVISION "SVN"