aboutsummaryrefslogtreecommitdiffhomepage
path: root/Makefile
blob: a65b8606ba99059d1e6e9d17f381d6506d31a17c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# GTK or NCURSES
INTERFACE?=GTK

OS:=$(shell uname)

ifneq ($(findstring MINGW32,$(OS)),)
PREFIX?=/mingw
else
PREFIX?=/usr/local
endif

GOB2:=gob2
CC:=gcc
CXX:=g++
TOUCH:=touch
INSTALL:=install

GLIB_CFLAGS:=$(shell pkg-config --cflags glib-2.0)
GLIB_LDFLAGS:=$(shell pkg-config --libs glib-2.0)

SCI_DIR:=..
SCI_CFLAGS:=-I$(SCI_DIR)/include -D$(INTERFACE) -DSCI_LEXER
SCI_LDFLAGS:=$(SCI_DIR)/bin/scintilla.a

ifeq ($(INTERFACE),GTK)

GTK_CFLAGS:=$(shell pkg-config --cflags gtk+-2.0)
GTK_LDFLAGS:=$(shell pkg-config --libs gtk+-2.0)

else ifeq ($(INTERFACE),NCURSES)

SCI_CFLAGS+=-I$(SCI_DIR)/scinterm

ifeq ($(OS),Linux)
NCURSES_CFLAGS:=
NCURSES_LDFLAGS:=-lncurses
else
NCURSES_CFLAGS:=
NCURSES_LDFLAGS:=-lpdcurses
endif

endif

CPPFLAGS:=-DINTERFACE_$(INTERFACE)
CFLAGS:=-Wall -std=c99 -g -O0 \
	$(GLIB_CFLAGS) $(SCI_CFLAGS) $(GTK_CFLAGS) $(NCURSES_CFLAGS)
CXXFLAGS:=-Wall -g -O0 \
	  $(GLIB_CFLAGS) $(SCI_CFLAGS) $(GTK_CFLAGS) $(NCURSES_CFLAGS)
LDFLAGS:=$(GLIB_LDFLAGS) $(SCI_LDFLAGS) $(GTK_LDFLAGS) $(NCURSES_LDFLAGS)

ifneq ($(findstring MINGW32,$(OS)),)
CPPFLAGS+=-Icompat
endif

all : sciteco

sciteco : main.o cmdline.o undo.o expressions.o qbuffers.o \
	  parser.o goto.o rbtree.o \
	  interface.a
	$(CXX) -o $@ $^ $(LDFLAGS)

ifeq ($(INTERFACE),GTK)

interface.a : interface-gtk.o gtk-info-popup.o
	$(AR) rc $@ $^
	$(TOUCH) $@
interface-gtk.o : gtk-info-popup.h

else ifeq ($(INTERFACE),NCURSES)

interface.a : interface-ncurses.o
	$(AR) rc $@ $^
	$(TOUCH) $@

endif

%.c %.h %-private.h : %.gob
	$(GOB2) $<

install: all
	$(INSTALL) sciteco $(PREFIX)/bin

clean:
	$(RM) sciteco *.o *.a *.exe
	$(RM) gtk-info-popup*.[ch]