Skip to content

Instantly share code, notes, and snippets.

@artagnon
Last active December 20, 2015 08:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save artagnon/6102996 to your computer and use it in GitHub Desktop.
Save artagnon/6102996 to your computer and use it in GitHub Desktop.
textadept Makefile
# Copyright 2007-2013 Mitchell mitchell.att.foicica.com. See LICENSE.
kernel = $(shell uname -s)
ifneq (, $(or $(findstring Linux, $(kernel)), $(findstring BSD, $(kernel))))
ifeq (win, $(findstring win, $(MAKECMDGOALS)))
# Cross-compile for Win32.
ifeq (win32, $(findstring win32, $(MAKECMDGOALS)))
arch = win32
CROSS = i686-w64-mingw32-
lua_dll = luajit/src/lua51.dll
else ifeq (win64, $(findstring win64, $(MAKECMDGOALS)))
arch = win64
CROSS = x86_64-w64-mingw32-
lua_dll = luajit/src/lua51_64.dll
endif
CC = gcc
CFLAGS = -mms-bitfields
CXX = g++
CXXFLAGS = -mms-bitfields -static-libgcc -static-libstdc++
LDFLAGS = -Wl,--retain-symbols-file -Wl,lua.sym
ifeq (, $(findstring curses, $(MAKECMDGOALS)))
CXXFLAGS += -mwindows
LDFLAGS += -liconv
endif
WINDRES = windres
MAKE = make
ifeq (, $(findstring curses, $(MAKECMDGOALS)))
plat_flag = -DGTK
GTK_CFLAGS = $(shell PKG_CONFIG_PATH=`pwd`/$(arch)gtk/lib/pkgconfig \
pkg-config --define-variable=prefix=$(arch)gtk \
--cflags gtk+-2.0)
GTK_LIBS = $(shell PKG_CONFIG_PATH=`pwd`/$(arch)gtk/lib/pkgconfig \
pkg-config --define-variable=prefix=$(arch)gtk \
--libs gtk+-2.0)
else
plat_flag = -DCURSES
CURSES_CFLAGS = -DLIBICONV_STATIC -I$(arch)curses/include
CURSES_LIBS = $(arch)curses/lib/pdcurses.a $(arch)curses/lib/libiconv.a
endif
luadoc = luadoc_start.bat
else ifeq (osx, $(findstring osx, $(MAKECMDGOALS)))
# Cross-compile for Mac OSX.
CROSS = i686-apple-darwin10-
CC = gcc
CFLAGS = -m32 -arch i386 -mdynamic-no-pic -mmacosx-version-min=10.5 \
-isysroot /usr/lib/apple/SDKs/MacOSX10.5.sdk
CXX = g++
CXXFLAGS = -m32 -arch i386 -mdynamic-no-pic -mmacosx-version-min=10.5 \
-isysroot /usr/lib/apple/SDKs/MacOSX10.5.sdk
LUAFLAGS = -DLUA_USE_MACOSX
LDFLAGS = -liconv -rdynamic
MAKE = make
ifeq (, $(findstring curses, $(MAKECMDGOALS)))
plat_flag = -DGTK
GTK_CFLAGS = $(shell PKG_CONFIG_PATH=`pwd`/gtkosx/lib/pkgconfig \
pkg-config --define-variable=prefix=gtkosx \
--cflags gtk+-2.0)
GTK_LIBS = $(shell PKG_CONFIG_PATH=`pwd`/gtkosx/lib/pkgconfig \
pkg-config --define-variable=prefix=gtkosx \
--libs gtk+-2.0 gmodule-2.0 gtk-mac-integration) \
-framework Cocoa
else
plat_flag = -DCURSES -D_XOPEN_SOURCE_EXTENDED
CURSES_LIBS = -lncurses
endif
libluajit = luajit/src/libluajit.osx.a
luadoc = luadoc
else
# Build for Linux/BSD.
CC = gcc
CXX = g++
LUAFLAGS = -DLUA_USE_LINUX
LDFLAGS = -rdynamic -Wl,--retain-symbols-file -Wl,lua.sym
ifeq (Linux, $(kernel))
LDFLAGS += -ldl
MAKE = make
else
ifeq (curses, $(findstring curses, $(MAKECMDGOALS)))
LDFLAGS += -liconv
endif
MAKE = gmake
endif
PREFIX ?= /usr/local
bin_dir = $(DESTDIR)$(PREFIX)/bin
data_dir = $(DESTDIR)$(PREFIX)/share/textadept
ifeq (, $(findstring curses, $(MAKECMDGOALS)))
plat_flag = -DGTK
ifndef GTK3
gtk_version = 2.0
else
gtk_version = 3.0
endif
GTK_CFLAGS = $(shell pkg-config --cflags gtk+-$(gtk_version))
GTK_LIBS = $(shell pkg-config --libs gtk+-$(gtk_version))
install_targets = ../textadept ../textadeptjit
else
plat_flag = -DCURSES -D_XOPEN_SOURCE_EXTENDED
CURSES_LIBS = -lncursesw
install_targets = ../textadept-curses ../textadeptjit-curses
endif
x64 = $(shell echo "" | $(CC) -E -dM - | grep __x86_64__ | cut -d ' ' -f 3)
libluajit = luajit/src/libluajit.a
luadoc = luadoc
endif
#else ifeq (Darwin, $(shell uname -s))
# CC = gcc
# CFLAGS = -arch i386 -mdynamic-no-pic -mmacosx-version-min=10.5 \
# -isysroot /Developer/SDKs/MacOSX10.5.sdk
# CXX = g++
# CXXFLAGS = -arch i386 -mdynamic-no-pic -mmacosx-version-min=10.5 \
# -isysroot /Developer/SDKs/MacOSX10.5.sdk
# LUAFLAGS = -DLUA_USE_MACOSX
# LDFLAGS = -liconv -rdynamic
#
# #ifeq (, $(findstring curses, $(MAKECMDGOALS)))
# plat_flag = -DGTK
# GTK_CFLAGS = $(shell PKG_CONFIG_PATH=`pwd`/gtkosx/lib/pkgconfig \
# gtkosx/bin/pkg-config --define-variable=prefix=gtkosx\
# --cflags gtk+-2.0)
# GTK_LIBS = $(shell PKG_CONFIG_PATH=`pwd`/gtkosx/lib/pkgconfig \
# gtkosx/bin/pkg-config --define-variable=prefix=gtkosx \
# --libs gtk+-2.0) -framework Cocoa -lgtkmacintegration
# .DEFAULT_GOAL := osx
# #else
# # plat_flag = -DCURSES -D_XOPEN_SOURCE_EXTENDED
# # CURSES_LIBS = -lncurses
# # .DEFAULT_GOAL := osx-curses
# #endif
#
# luadoc = luadoc
endif
# No debugging unless DEBUG=1.
ifdef DEBUG
CFLAGS += -g
CXXFLAGS += -g
endif
# Scintilla.
sci_flags = -pedantic -Os $(plat_flag) -DSCI_LEXER -DNDEBUG \
-DG_THREADS_IMPL_NONE -Iscintilla/include -Iscintilla/src \
-Iscintilla/lexlib -Wall -Wno-missing-braces -Wno-char-subscripts \
-Wno-long-long
sci_objs = AutoComplete.o CallTip.o CaseConvert.o CaseFolder.o Catalogue.o \
CellBuffer.o CharClassify.o ContractionState.o Decoration.o \
Document.o Editor.o ExternalLexer.o Indicator.o KeyMap.o \
LineMarker.o PerLine.o PositionCache.o RESearch.o RunStyles.o \
ScintillaBase.o Selection.o Style.o UniConversion.o ViewStyle.o XPM.o
sci_lex_objs = Accessor.o CharacterSet.o LexerBase.o LexerModule.o \
LexerNoExceptions.o LexerSimple.o PropSetSimple.o \
StyleContext.o WordList.o
sci_gtk_objs = PlatGTK.o ScintillaGTK.o
# Textadept.
ta_flags = -std=c99 -O -D_POSIX_C_SOURCE=200809L -D_DARWIN_C_SOURCE \
$(plat_flag) -Iscintilla/include -Igtdialog -W -Wall \
-Wno-sign-compare -Wno-unused
ifndef NO_SINGLE_INSTANCE
# Single instance unless NO_SINGLE_INSTANCE=1
ta_flags += -DSINGLE_INSTANCE
endif
lua_objs = lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o \
linit.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 lbitlib.o lcorolib.o ldblib.o liolib.o \
lmathlib.o loadlib.o loslib.o ltablib.o lstrlib.o
lua_lib_objs = lpeg.o lfs.o
#lua_lib_objs = lpcap.o lpcode.o lpprint.o lptree.o lpvm.o lfs.o
luajit_lib_objs = lpegjit.o lfsjit.o
#luajit_lib_objs = lpcapjit.o lpcodejit.o lpprintjit.o lptreejit.o lpvmjit.o \
# lfsjit.o
termkey_objs = termkey.o driver-ti.o driver-csi.o
cdk_objs = binding.o buttonbox.o button.o cdk.o cdk_display.o cdk_objs.o \
cdk_params.o cdkscreen.o debug.o draw.o entry.o fselect.o \
itemlist.o label.o mentry.o menu.o popup_label.o position.o \
scroll.o select_file.o traverse.o version.o
# Build.
all: textadept textadeptjit
curses: textadept-curses textadeptjit-curses
win32: textadept.exe textadeptjit.exe
win32-curses: textadept-curses.exe textadeptjit-curses.exe
win64: textadept.exe #textadeptjit.exe
win64-curses: textadept-curses.exe #textadeptjit-curses.exe
osx: textadept textadeptjit
osx-curses: textadept-curses textadeptjit-curses
# Dependencies.
base_deps = scintilla scintilla/term scintillua lua lualibs luajit gtdialog \
cdk ../doc/bombay
deps: $(base_deps) termkey
win32-deps: $(base_deps) win32gtk win32curses
osx-deps: $(base_deps) gtkosx termkey
$(sci_objs): %.o: scintilla/src/%.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(sci_flags) $< -o $@
$(sci_lex_objs): %.o: scintilla/lexlib/%.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(sci_flags) $< -o $@
$(sci_gtk_objs): %.o: scintilla/gtk/%.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(sci_flags) $(GTK_CFLAGS) $< -o $@
scintilla-marshal.o: scintilla/gtk/scintilla-marshal.c
$(CROSS)$(CC) -c $(CFLAGS) $(GTK_CFLAGS) $< -o $@
ScintillaTerm.o: scintilla/term/ScintillaTerm.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(sci_flags) -Iscintilla/term $(CURSES_CFLAGS) \
$< -o $@
LexLPeg.o: LexLPeg.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(LUAFLAGS) $(sci_flags) -DLPEG_LEXER \
-DNO_SCITE -Ilua/src $< -o $@
LexLPegjit.o: LexLPeg.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(LUAFLAGS) $(sci_flags) -DLPEG_LEXER \
-DNO_SCITE -Iluajit/src $< -o $@
LexLPeg-curses.o: LexLPeg.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(LUAFLAGS) $(sci_flags) -DLPEG_LEXER \
-DNO_SCITE -DCURSES -Ilua/src $(CURSES_CFLAGS) $< -o $@
LexLPegjit-curses.o: LexLPeg.cxx
$(CROSS)$(CXX) -c $(CXXFLAGS) $(LUAFLAGS) $(sci_flags) -DLPEG_LEXER \
-DNO_SCITE -DCURSES -Iluajit/src $(CURSES_CFLAGS) $< -o $@
textadept.o: textadept.c
$(CROSS)$(CC) -c $(CFLAGS) $(ta_flags) -Ilua/src $(GTK_CFLAGS) $< -o $@
textadeptjit.o: textadept.c
$(CROSS)$(CC) -c $(CFLAGS) $(ta_flags) -DLUAJIT -Iluajit/src $(GTK_CFLAGS) \
$< -o $@
textadept-curses.o: textadept.c
$(CROSS)$(CC) -c $(CFLAGS) $(ta_flags) -Ilua/src -Iscintilla/term -Itermkey \
-Icdk $(CURSES_CFLAGS) $< -o $@
textadeptjit-curses.o: textadept.c
$(CROSS)$(CC) -c $(CFLAGS) $(ta_flags) -DLUAJIT -Iluajit/src \
-Iscintilla/term -Itermkey -Icdk $(CURSES_CFLAGS) $< -o $@
$(lua_objs): %.o: lua/src/%.c
$(CROSS)$(CC) -c $(CFLAGS) $(LUAFLAGS) -Ilua/src $< -o $@
$(lua_lib_objs): %.o: lua/src/lib/%.c
$(CROSS)$(CC) -c $(CFLAGS) $(LUAFLAGS) -Ilua/src $< -o $@
$(luajit_lib_objs): %jit.o: lua/src/lib/%.c
$(CROSS)$(CC) -c $(CFLAGS) $(LUAFLAGS) -Iluajit/src $< -o $@
luajit/src/libluajit.a: ; $(MAKE) -C luajit CC="$(CC) $(CFLAGS)"
luajit/src/lua51.dll:
$(MAKE) -C luajit HOST_CC="$(CC) -m32" CROSS=$(CROSS) TARGET_SYS=Windows
luajit/src/lua51_64.dll:
$(MAKE) -C luajit HOST_CC="$(CC)" CROSS=$(CROSS) TARGET_SYS=Windows \
TARGET_DLLNAME=$(notdir $@)
luajit/src/libluajit.osx.a:
$(MAKE) -C luajit CC="$(CC) -m32" CROSS=$(CROSS) TARGET_SYS=Darwin \
LUAJIT_A=$(notdir $@) || return 0
gtdialog.o: gtdialog/gtdialog.c
$(CROSS)$(CC) -c $(CFLAGS) -DGTK -DNOHELP -DLIBRARY $(GTK_CFLAGS) $< -o $@
gtdialog-curses.o: gtdialog/gtdialog.c
$(CROSS)$(CC) -c $(CFLAGS) -DCURSES -DNOHELP -DLIBRARY -Icdk \
$(CURSES_CFLAGS) $< -o $@
$(cdk_objs): %.o: cdk/%.c
$(CROSS)$(CC) -c $(CFLAGS) -D_GNU_SOURCE -Icdk $(CURSES_CFLAGS) $< -o $@
$(termkey_objs): %.o: termkey/%.c ; $(CROSS)$(CC) -c $(CFLAGS) -std=c99 $< -o $@
textadept_rc.o: textadept.rc ; $(CROSS)$(WINDRES) $< $@
# Executables.
textadept: $(sci_objs) $(sci_lex_objs) $(sci_gtk_objs) scintilla-marshal.o \
LexLPeg.o textadept.o $(lua_objs) $(lua_lib_objs) gtdialog.o
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(GTK_LIBS) $(LDFLAGS)
textadeptjit: $(sci_objs) $(sci_lex_objs) $(sci_gtk_objs) scintilla-marshal.o \
LexLPegjit.o textadeptjit.o $(luajit_lib_objs) $(libluajit) \
gtdialog.o
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(GTK_LIBS) $(LDFLAGS)
textadept-curses: $(sci_objs) $(sci_lex_objs) ScintillaTerm.o LexLPeg-curses.o \
textadept-curses.o $(lua_objs) $(lua_lib_objs) \
gtdialog-curses.o $(termkey_objs) $(cdk_objs)
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(CURSES_LIBS) $(LDFLAGS)
textadeptjit-curses: $(sci_objs) $(sci_lex_objs) ScintillaTerm.o \
LexLPegjit-curses.o textadeptjit-curses.o \
$(luajit_lib_objs) $(libluajit) gtdialog-curses.o \
$(termkey_objs) $(cdk_objs)
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(CURSES_LIBS) $(LDFLAGS)
textadept.exe: $(sci_objs) $(sci_lex_objs) $(sci_gtk_objs) scintilla-marshal.o \
LexLPeg.o textadept.o textadept_rc.o $(lua_objs) \
$(lua_lib_objs) gtdialog.o
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(GTK_LIBS) $(LDFLAGS)
textadeptjit.exe: $(sci_objs) $(sci_lex_objs) $(sci_gtk_objs) \
scintilla-marshal.o LexLPegjit.o textadeptjit.o \
textadept_rc.o $(luajit_lib_objs) $(lua_dll) gtdialog.o
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(GTK_LIBS) $(LDFLAGS)
textadept-curses.exe: $(sci_objs) $(sci_lex_objs) ScintillaTerm.o \
LexLPeg-curses.o textadept-curses.o textadept_rc.o \
$(lua_objs) $(lua_lib_objs) gtdialog-curses.o $(cdk_objs)
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(CURSES_LIBS) $(LDFLAGS)
textadeptjit-curses.exe: $(sci_objs) $(sci_lex_objs) ScintillaTerm.o \
LexLPegjit-curses.o textadeptjit-curses.o \
textadept_rc.o $(luajit_lib_objs) $(lua_dll) \
gtdialog-curses.o $(cdk_objs)
$(CROSS)$(CXX) $(CXXFLAGS) -o ../$@ $^ $(CURSES_LIBS) $(LDFLAGS)
# Install/uninstall.
install: $(install_targets) | ../core ../doc ../init.lua ../lexers ../LICENSE \
../modules ../themes
install -d $(bin_dir) $(data_dir)
install $^ $(data_dir)
cp -r $| $(data_dir)
ln -s $(subst .., $(subst $(DESTDIR),, $(data_dir)), $^) $(bin_dir)
uninstall: ; rm -r $(bin_dir)/textadept* $(data_dir)
# Clean.
clean:
$(MAKE) -C luajit clean
rm -f *.o ../textadept*
# Documentation.
doc: manual luadoc adeptsense
manual: ../doc/*.md ../*.md | ../doc/bombay
$| -d ../doc -t ../doc --title Textadept --navtitle Manual $^
luadoc: ../modules ../core ../lexers
cd ../doc && $(luadoc) -d . -t . --doclet markdowndoc $^/lexer.lua
adeptsense: ../modules ../core ../lexers
cd ../modules && $(luadoc) -d lua --doclet lua/adeptsensedoc $^/lexer.lua
cleandoc: ; rm -rf ../doc/*.html ../doc/api
# Releases.
build_dir = /tmp/tabuild
ifndef NIGHTLY
basedir = textadept_$(shell grep "_RELEASE =" ../core/init.lua | \
cut -d ' ' -f 4- | sed -e 's/"//; s/ /_/g;')
else
basedir = textadept_NIGHTLY_$(shell date +"%F")
endif
osxapp = Textadept.app
osxapp_bin = $(osxapp)/Contents/MacOS
osxapp_res = $(osxapp)/Contents/Resources
osxapp_libs = libatk-1.0.0.dylib libcairo.2.dylib libexpat.1.dylib \
libffi.5.dylib libfontconfig.1.dylib libfreetype.6.dylib \
libgdk_pixbuf-2.0.0.dylib libgdk-quartz-2.0.0.dylib \
libgio-2.0.0.dylib libglib-2.0.0.dylib libgmodule-2.0.0.dylib \
libgobject-2.0.0.dylib libgthread-2.0.0.dylib \
libgtkmacintegration.2.dylib libgtk-quartz-2.0.0.dylib \
libintl.8.dylib libpango-1.0.0.dylib libpangocairo-1.0.0.dylib \
libpangoft2-1.0.0.dylib libpixman-1.0.dylib libpng14.14.dylib \
charset.alias gdk-pixbuf-2.0 gtk-2.0 pango
modules = css hypertext java rails rhtml ruby php python
release-all: release release64 win32-release osx-release modules-release \
cleanup-release
$(build_dir): ; hg clone -r tip /home/mitchell/code/textadept $@
$(basedir).i386: | $(build_dir) ; hg archive $@ -X ".hg*"
release: $(basedir).i386 | $(build_dir)
make -C $|/src deps clean doc
PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig make -C $|/src -j4 MAKE="make -j4"
make -C $|/src -j4 curses
cp -r $|/doc $|/lexers/lexers $|/textadept* $<
tar czf /tmp/$<.tgz $< && rm -rf $<
$(basedir).x86_64: | $(build_dir) ; hg archive $@ -X ".hg*"
release64: $(basedir).x86_64 | $(build_dir)
make -C $|/src clean libluajit64
PKG_CONFIG_PATH=/opt/gtk64/lib/pkgconfig make -C $|/src -j4 CFLAGS=-m64 \
CXXFLAGS=-m64 MAKE="make -j4" || return 0
make -C $|/src -j4 CFLAGS=-m64 CXXFLAGS=-m64 \
CURSES_CFLAGS=-I/opt/ncursesw64/include/ncursesw \
CURSES_LIBS="-L/opt/ncursesw64/lib -lncursesw" curses || return 0
cp -r $|/doc $|/lexers/lexers $|/textadept* $<
tar czf /tmp/$<.tgz $< && rm -rf $<
$(basedir).win32: | $(build_dir) ; hg archive $@ -X ".hg*"
win32-release: $(basedir).win32 | $(build_dir)
make -C $|/src -j4 clean CROSS=i586-mingw32msvc- win32-deps
cp $|/src/win32gtk/bin/*.dll $< && cp -r $|/src/win32gtk/etc \
$|/src/win32gtk/lib $|/src/win32gtk/share $<
rm -r $</lib/*.a $</lib/glib-2.0 $</lib/gtk-2.0/include $</lib/pkgconfig
make -C $|/src -j4 CROSS=i586-mingw32msvc- MAKE="make -j4" win32
make -C $|/src -j4 CROSS=i586-mingw32msvc- win32-curses
cp -r $|/doc $|/lexers/lexers $|/textadept* $|/src/luajit/src/lua51.dll $<
zip -r /tmp/$<.zip $< && rm -rf $<
$(basedir).osx: ; mkdir $@ && cp ../scripts/osx/ta $@
osx-release: $(basedir).osx | $(build_dir)
make -C $|/src clean osx-deps
make -C $|/src -j4 MAKE="make -j4" osx
make -C $|/src -j4 osx-curses
make -C $|/src osx-app && mv $|/src/$(osxapp) $<
zip -r /tmp/$<.zip $< && rm -rf $<
$(basedir).modules:
mkdir -p $@/modules
for m in $(modules); do hg clone /home/mitchell/code/$$m $@/modules/$$m; done
modules-release: $(basedir).modules ; zip -r /tmp/$<.zip $< && rm -r $<
cleanup-release: /tmp/$(basedir).x86_64.tgz /tmp/$(basedir).i386.tgz \
/tmp/$(basedir).win32.zip /tmp/$(basedir).osx.zip \
/tmp/$(basedir).modules.zip | $(build_dir)
rm -rf $|
osx-app: ../textadept ../textadeptjit ../textadept-curses \
../textadeptjit-curses ../scripts/osx/textadept_osx
mkdir -p $(osxapp_bin) $(osxapp_res)
cp Info.plist $(osxapp_bin)/../
cp $^ $(osxapp_bin)/
hg archive $(osxapp_res) -X ".hg*"
cp -r ../doc ../lexers/lexers $(osxapp_res)
mv $(osxapp_res)/core/images/textadept.icns $(osxapp_res)/
cp -r gtkosx/etc gtkosx/share $(osxapp_res)/ && mkdir $(osxapp_res)/lib/
cp -r $(addprefix gtkosx/lib/, $(osxapp_libs)) $(osxapp_res)/lib/
rm -r $(osxapp_res)/lib/gtk-2.0/include $(osxapp_res)/lib/gtk-2.0/modules
rm $(osxapp_res)/lib/gtk-2.0/2.10.0/printbackends/*
# External dependencies.
scintilla_tgz = scintilla334.tgz?download
scinterm_zip = scinterm.zip
scintillua_zip = scintillua.zip
lua_tgz = lua-5.2.2.tar.gz
lpeg_tgz = lpeg-0.10.2.tar.gz
lfs_zip = d71c63cdb776f7d25313f8fcd14f07512ba1f83e.zip
luajit_tgz = LuaJIT-2.0.2.tar.gz
libluajit_tgz = libluajit_2.0.2.x86_64.tgz
gtdialog_zip = gtdialog.zip
cdk_tgz = cdk.tar.gz
termkey_tgz = libtermkey-0.16.tar.gz
win32gtk_zip = gtk+-bundle_2.24.10-20120208_win32.zip
win32iconv_bin_zip = libiconv-bin-zip.php
win32iconv_lib_zip = libiconv-lib-zip.php
win32curses_zip = win32curses.zip
pdcurses_zip = download
gtkosx_zip = gtkosx-2.24.16.zip
bombay_zip = bombay.zip
$(scintilla_tgz): ; wget "http://prdownloads.sourceforge.net/scintilla/$@"
scintilla: scintilla.patch | $(scintilla_tgz)
mkdir $@ && tar xzf $| -C $@ && mv $@/*/* $@
patch -d $@ -N -p1 < $<
$(scinterm_zip):
wget "http://foicica.com/hg/scinterm/archive/tip.zip" && mv tip.zip $@
scintilla/term: | $(scinterm_zip) ; mkdir $@ && unzip -d $@ $| && mv $@/*/* $@
scintillua: ../lexers LexLPeg.cxx
$(scintillua_zip):
wget "http://foicica.com/hg/scintillua/archive/tip.zip" && mv tip.zip $@
../lexers: | $(scintillua_zip)
mkdir $@ && unzip -d $@ $| && mv $@/*/* $@
ln -s $@/lexers/*.lua $@
LexLPeg.cxx: | ../lexers ; ln -s $|/$@ $@
$(lua_tgz): ; wget "http://www.lua.org/ftp/$@"
$(lpeg_tgz): ; wget "http://www.inf.puc-rio.br/~roberto/lpeg/$@"
$(lfs_zip): ; wget "https://github.com/keplerproject/luafilesystem/archive/$@"
lua: lua.patch | $(lua_tgz)
mkdir $@ && tar xzf $| -C $@ && mv $@/*/* $@
patch -d $@ -N -p1 < $<
lualibs: lua/src/lib/lpeg lua/src/lib/lfs
lua/src/lib/lpeg: | $(lpeg_tgz)
mkdir -p $@ && tar xzf $| -C $@ && mv $@/*/*.c $@/*/*.h $(dir $@)
lua/src/lib/lfs: lfs.patch | $(lfs_zip)
mkdir -p $@ && unzip -d $@ $| && mv $@/*/src/*.c $@/*/src/*.h $(dir $@)
patch -d $(dir $@) -N -p1 < $<
$(luajit_tgz): ; wget "http://luajit.org/download/$@"
luajit: luajit.patch | $(luajit_tgz)
mkdir $@ && tar xzf $| -C $@ && mv $@/*/* $@
patch -d $@ -N -p1 < $<
$(libluajit_tgz): ; wget "http://foicica.com/textadept/download/$@"
libluajit64: | $(libluajit_tgz) ; tar xzf $|
$(gtdialog_zip):
wget "http://foicica.com/hg/gtdialog/archive/tip.zip" && mv tip.zip $@
gtdialog: | $(gtdialog_zip) ; mkdir $@ && unzip -d $@ $| && mv $@/*/* $@
$(cdk_tgz): ; wget "http://invisible-island.net/datafiles/release/$@"
cdk: cdk.patch | $(cdk_tgz)
mkdir $@ && tar xzf $| -C $@ && mv $@/*/* $@
mv $@/include/*.h $@
patch -d $@ -N -p1 < $<
$(termkey_tgz): ; wget "http://www.leonerd.org.uk/code/libtermkey/$@"
termkey: | $(termkey_tgz) ; mkdir $@ && tar xzf $| -C $@ && mv $@/*/* $@
$(win32gtk_zip):
wget "http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/$@"
$(win32iconv_bin_zip): ; wget "http://gnuwin32.sourceforge.net/downlinks/$@"
$(win32iconv_lib_zip): ; wget "http://gnuwin32.sourceforge.net/downlinks/$@"
win32gtk: | $(win32gtk_zip) $(win32iconv_bin_zip) $(win32iconv_lib_zip)
mkdir $@
unzip -d $@ $(win32gtk_zip)
for zip in $(win32iconv_bin_zip) $(win32iconv_lib_zip); do \
unzip -d $@ $$zip; \
done
rm -r $@/etc/bash_completion.d $@/lib/gtk-2.0/modules $@/lib/*.def
cd $@/share && rm -r aclocal doc glib-2.0 gtk-2.0 gtk-doc locale man
$(win32curses_zip): ; wget "http://foicica.com/textadept/download/$@"
$(pdcurses_zip):
wget "http://sf.net/projects/pdcurses/files/pdcurses/3.4/pdcurs34.zip/$@"
win32curses: | $(win32curses_zip) $(pdcurses_zip)
unzip $(win32curses_zip)
mkdir $@/src && unzip -d $@/src $(pdcurses_zip)
cp $@/lib/pdckbd.c $@/src/win32
cd $@/src/win32 && $(MAKE) -f gccwin32.mak CC="$(CROSS)$(CC) $(CFLAGS)" \
LIBEXE=$(CROSS)ar LINK="$(CROSS)$(CC) $(CFLAGS)" WIDE=Y UTF8=Y
cp $@/src/win32/pdcurses.a $@/lib/
$(gtkosx_zip): ; wget "http://foicica.com/textadept/download/$@"
gtkosx: | $(gtkosx_zip) ; mkdir $@ && unzip -d $@ $| && mv $@/*/* $@
$(bombay_zip):
wget "http://foicica.com/hg/bombay/archive/tip.zip" && mv tip.zip $@
../doc/bombay: | $(bombay_zip)
mkdir $(notdir $@) && unzip -d $(notdir $@) $| && \
mv $(notdir $@)/*/* $(dir $@)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment