# Makefile for the GtkScintilla2 widget NAME = GtkScintilla2 LIB_NAME = gtkscintilla2 VERSION = 0 PREFIX = $(shell pkg-config --variable=prefix gtk+-2.0) SCINTILLA_DIR = ./scintilla SCINTILLA_INCLUDE = $(SCINTILLA_DIR)/include SCINTILLA_LIB = $(SCINTILLA_DIR)/bin/scintilla.a SCINTILLA_IFACE = $(SCINTILLA_INCLUDE)/Scintilla.iface LEXERS = $(wildcard $(SCINTILLA_DIR)/gtk/Lex*.o) CFLAGS = $(shell pkg-config --cflags gtk+-2.0 gthread-2.0) -g -Wall -DGTK -DSCI_LEXER -fPIC LDFLAGS_PRE = $(shell pkg-config --libs gtk+-2.0 gthread-2.0) -DGTK2 LDFLAGS_POST = $(LEXERS) $(SCINTILLA_LIB) -lstdc++ CC ?= gcc LD ?= $(CC) AR = ar STATIC_LIB = lib$(LIB_NAME).a SHARED_LIB = lib$(LIB_NAME).so.$(VERSION) LIB_DIR = $(PREFIX)/lib INCLUDE_DIR = $(PREFIX)/include/$(LIB_NAME) PKG_CONFIG_DIR = $(PREFIX)/libdata/pkgconfig all: $(STATIC_LIB) $(SHARED_LIB) $(STATIC_LIB): $(SCINTILLA_LIB) gtkscintilla.o marshal.o $(AR) -rs $@ $^ $(SHARED_LIB): $(SCINTILLA_LIB) gtkscintilla.o marshal.o $(LD) $(LDFLAGS_PRE) gtkscintilla.o marshal.o -shared $(LDFLAGS_POST) -o $@ # GObject Signal Marshallers marshal.o: marshal.c marshal.h marshal.h: marshal.list glib-genmarshal --header --prefix="scintilla_marshal" marshal.list > $(@F) marshal.c: marshal.h marshal.list glib-genmarshal --body --prefix="scintilla_marshal" marshal.list > $(@F) gtkscintilla.o: gtkscintilla.h gtkscintilla.c marshal.c marshal.h $(SCINTILLA_LIB): cd $(SCINTILLA_DIR)/gtk ; $(MAKE) GTK2=1 gtkscintilla.h gtkscintilla.c: scigen.py $(SCINTILLA_IFACE) python scigen.py install: all install -D --mode=755 $(SHARED_LIB) $(DESTDIR)/$(LIB_DIR)/$(SHARED_LIB) install -D --mode=755 $(STATIC_LIB) $(DESTDIR)/$(LIB_DIR)/$(STATIC_LIB) rm -f $(DESTDIR)/$(LIB_DIR)lib$(LIB_NAME).so workdir=$$(pwd) ; cd $(DESTDIR)/$(LIB_DIR); \ ln -s $(SHARED_LIB) lib$(LIB_NAME).so ; \ cd $$workdir install -D --mode=644 gtkscintilla.h $(DESTDIR)/$(INCLUDE_DIR)/gtkscintilla.h install -D --mode=644 GtkScintilla-2.0.pc $(DESTDIR)/$(PKG_CONFIG_DIR)/GtkScintilla-2.0.pc uninstall: rm -f $(DESTDIR)/$(LIB_DIR)$(SHARED_LIB) rm -f $(DESTDIR)/$(LIB_DIR)$(STATIC_LIB) rm -f $(DESTDIR)/$(LIB_DIR)/lib$(LIB_NAME).so rm -f $(DESTDIR)/$(INCLUDE_DIR)gtkscintilla.h clean: rm -f *.o *.so *~ core $(SHARED_LIB) $(STATIC_LIB) rm -f $(SCINTILLA_DIR)/bin/scintilla.a cd $(SCINTILLA_DIR)/gtk ; $(MAKE) clean # rm -f *.c *.h realclean: clean rm -f gtkscintilla.h gtkscintilla.c dist: clean if test -d "$(NAME)-$(VERSION)"; then rm -rf $(NAME)-$(VERSION); fi if test -f "$(NAME)-$(VERSION).tar.gz"; then rm -f $(NAME)-$(VERSION).tar.gz; fi mkdir $(NAME)-$(VERSION) cp -r scintilla $(NAME)-$(VERSION) cp *.c $(NAME)-$(VERSION) cp *.h $(NAME)-$(VERSION) cp Makefile $(NAME)-$(VERSION) cp README $(NAME)-$(VERSION) cp COPYING $(NAME)-$(VERSION) cp GtkScintilla-2.0.pc $(NAME)-$(VERSION) cp GtkScintilla.spec $(NAME)-$(VERSION) cp scigen.py $(NAME)-$(VERSION) cp gtkscintilla.h.in $(NAME)-$(VERSION) cp gtkscintilla.c.in $(NAME)-$(VERSION) (GZIP=--best ; tar cvzf $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)) rm -rf $(NAME)-$(VERSION)