116 lines
2.8 KiB
Makefile
116 lines
2.8 KiB
Makefile
# common.mk
|
|
# This file is part of Anyterm; see http://anyterm.org/
|
|
# (C) 2005-2009 Philip Endecott
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
# You can have multiple build directories each with their own Makefiles.
|
|
# Those Makefiles include this common code; they can set variables to
|
|
# control things like optimisation level, debugging etc first. You should
|
|
# make changes in those build Makefiles rather than here, unless your
|
|
# change shouls apply to all build variants.
|
|
|
|
# Note that paths in here are relative to the build directory.
|
|
|
|
default_target: anytermd
|
|
|
|
SRC_DIR=../src
|
|
|
|
VPATH=${SRC_DIR} .
|
|
|
|
UNAME_S=$(shell uname -s)
|
|
|
|
ifeq (${UNAME_S},Darwin)
|
|
else
|
|
HAVE_GNU_LD=1
|
|
endif
|
|
|
|
LIBPBE_DIR=../libpbe
|
|
|
|
CPP_FLAGS=
|
|
|
|
GCC_FLAGS=-pthread
|
|
#GCC_FLAGS=-D_REENTRANT
|
|
|
|
COMPILE_FLAGS=$(CPP_FLAGS) $(GCC_FLAGS) -W -Wall ${OPTIMISE_FLAGS} ${DEBUG_FLAGS}
|
|
|
|
CC_COMPILE_FLAGS=$(COMPILE_FLAGS)
|
|
|
|
LINK_FLAGS=${GCC_FLAGS} ${DEBUG_FLAGS} \
|
|
-lutil
|
|
|
|
ifeq (${UNAME_S},OpenBSD)
|
|
LINK_FLAGS+=-liconv
|
|
endif
|
|
|
|
ifeq (${UNAME_S},Darwin)
|
|
LINK_FLAGS+=-liconv
|
|
endif
|
|
|
|
LIBPBE_MAKE_OPTIONS=
|
|
include ../libpbe.mk
|
|
|
|
CC_SRCS=$(sort $(notdir $(wildcard ${SRC_DIR}/*.cc)) static_content.cc)
|
|
|
|
BLOBFILES=anyterm.html anyterm.js anyterm.css copy.png paste.png copy.gif paste.gif
|
|
|
|
BLOBS=$(addsuffix .blob.o,$(BLOBFILES))
|
|
|
|
OBJS=$(addsuffix .o,$(notdir $(basename $(CC_SRCS))))
|
|
|
|
%.o: %.cc
|
|
$(CXX) $(CC_COMPILE_FLAGS) -c $<
|
|
|
|
ifdef HAVE_GNU_LD
|
|
%.blob.o: ../browser/%
|
|
cp $^ . ; $(LD) -r -b binary -o $@ $* ; rm $*
|
|
|
|
else
|
|
%.blob.c: ../browser/% ./mk_blob
|
|
./mk_blob $(subst .,_,$*) < $< > $@
|
|
|
|
mk_blob: mk_blob.c
|
|
$(CC) -o $@ $<
|
|
endif
|
|
|
|
|
|
anytermd: $(OBJS) $(BLOBS) $(LIBPBE_LIB)
|
|
$(CXX) -o $@ $(OBJS) $(BLOBS) $(LINK_FLAGS)
|
|
|
|
%.d: %.cc
|
|
$(CXX) -MM -MG -MT $@ -MT $(<:%.cc=%.o) $(CPP_FLAGS) $(GCC_FLAGS) -o $@ $<
|
|
|
|
DEPENDS=$(addsuffix .d,$(basename $(OBJS)))
|
|
|
|
-include $(DEPENDS)
|
|
|
|
install: FORCE
|
|
install anytermd /usr/local/bin
|
|
|
|
clean: FORCE
|
|
$(RM) -f *.o *.blob.c static_content.cc
|
|
|
|
veryclean: clean
|
|
$(RM) *.d
|
|
|
|
.PHONY: default_target install FORCE
|
|
|
|
|
|
static_content.cc: ../scripts/mk_static_content.sh ../browser/*
|
|
PATH="$${PATH}:../scripts" ../scripts/mk_static_content.sh $(BLOBFILES) > $@
|
|
|
|
static_content.o: CPP_FLAGS+=-I../src
|
|
|