diff --git a/Makefile b/Makefile index 8455205..0a70a05 100644 --- a/Makefile +++ b/Makefile @@ -1,64 +1,14 @@ -# Makefile for putty puttyparser parser for ADP +linux: + $(MAKE) $(MFLAGS) linux-dep + $(MAKE) $(MFLAGS) linux-all + $(MAKE) $(MFLAGS) linux-install -libdir=$(PREFIX)/lib -incdir=$(PREFIX)/include -CFLAGS = -O2 -Wall -g -I. -I./ -I./charset/ -I./unix -I$(incdir) -fPIC -DNO_GSSAPI -CCFLAGS = $(CFLAGS) -INSTALL = install -TARGET=libtermcapparser.so -HEADER_DIR=putty -HEADERS=$(HEADER_DIR)/termcapparser.hh $(HEADER_DIR)/state.hh $(HEADER_DIR)/row.hh $(HEADER_DIR)/cell.hh $(HEADER_DIR)/palette.hh -LDFLAGS+=-shared +linux-%: + $(MAKE) $(MFLAGS) -f Makefile.linux $* -CXX_OBJS = puttyparser.cc termcapparser.cc state.cc cell.cc row.cc palette.cc +help: + @cat README.md -C_OBJS = charset/fromucs.c ldisc.c ldiscucs.c charset/localenc.c charset/mimeenc.c minibidi.c misc.c charset/sbcs.c charset/sbcsdat.c charset/slookup.c terminal.c time.c fake_timing.c charset/toucs.c tree234.c charset/utf8.c unix/uxmisc.c unix/uxucs.c wcwidth.c charset/xenc.c - -OBJECTS = $(notdir $(CXX_OBJS:.cc=.o) $(C_OBJS:.c=.o)) - -all: $(TARGET) - -$(TARGET): $(OBJECTS) - $(CXX) -fPIC $(LDFLAGS) -o $@ $(OBJECTS) - -$(CXX_OBJS:.cc=.o): - $(CXX) $(COMPAT) $(CCFLAGS) -c $< - -$(notdir $(C_OBJS:.c=.o)): - $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c $< - - -install: $(TARGET) - mkdir -p $(DESTDIR)$(libdir) - mkdir -p $(DESTDIR)$(incdir)/$(HEADER_DIR) - $(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(libdir)/$(TARGET) - $(INSTALL) -m 644 $(HEADERS) -t $(DESTDIR)$(incdir)/$(HEADER_DIR) - -uninstall: - rm -f $(DESTDIR)$(libdir)/$(TARGET) - rm -f $(DESTDIR)$(incdir)/$(HEADERS) - rmdir $(DESTDIR)$(incdir)/$(HEADER_DIR) 2>/dev/null || true - rmdir $(DESTDIR)$(libdir) 2>/dev/null || true - -install-strip: - $(MAKE) install INSTALL="$(INSTALL) -s" - -clean: - rm -f $(OBJECTS) $(TARGET) - $(MAKE) -C tests clean - -distclean: clean - rm -f Makefile.* - -check: install - $(MAKE) -C tests - -NODEP_TARGETS = - -dep: $(C_OBJS) $(CXX_OBJS) - $(CC) -MM $(COMPAT) $(CFLAGS) $(XFLAGS) $^ > Makefile.dep -ifeq ($(filter $(MAKECMDGOALS),$(NODEP_TARGETS)),) --include Makefile.dep -endif +.PHONY: linux win32 help diff --git a/Makefile.head b/Makefile.head new file mode 100644 index 0000000..7b58fd6 --- /dev/null +++ b/Makefile.head @@ -0,0 +1,13 @@ +libdir=$(PREFIX)/lib +incdir=$(PREFIX)/include + +CFLAGS_COMMON = -O2 -Wall -g -I./ -I./charset/ -DNO_GSSAPI +INSTALL = install + +HEADER_DIR=putty +HEADERS=$(HEADER_DIR)/termcapparser.hh $(HEADER_DIR)/state.hh $(HEADER_DIR)/row.hh $(HEADER_DIR)/cell.hh $(HEADER_DIR)/palette.hh +LDFLAGS+=-shared + +CXX_OBJS = puttyparser.cc termcapparser.cc state.cc cell.cc row.cc palette.cc + +C_OBJS_COMMON = ldisc.c ldiscucs.c minibidi.c misc.c terminal.c time.c fake_timing.c tree234.c wcwidth.c charset/utf8.c charset/sbcsdat.c charset/fromucs.c charset/localenc.c charset/mimeenc.c charset/sbcs.c charset/slookup.c charset/toucs.c charset/xenc.c diff --git a/Makefile.linux b/Makefile.linux new file mode 100644 index 0000000..56163fa --- /dev/null +++ b/Makefile.linux @@ -0,0 +1,11 @@ +include Makefile.head + +TARGET_OS=linux + +CFLAGS = $(CFLAGS_COMMON) -I./unix -fPIC + +TARGET=libtermcapparser.so + +C_OBJS = $(C_OBJS_COMMON) unix/uxmisc.c unix/uxucs.c + +include Makefile.tail diff --git a/Makefile.tail b/Makefile.tail new file mode 100644 index 0000000..4180c9b --- /dev/null +++ b/Makefile.tail @@ -0,0 +1,48 @@ +OBJECTS = $(notdir $(CXX_OBJS:.cc=.o) $(C_OBJS:.c=.o)) +CCFLAGS = $(CFLAGS) +MAKEFILE_DEP = Makefile.$(TARGET_OS).dep + +all: $(TARGET) + +$(TARGET): $(OBJECTS) + $(CXX) $(LDFLAGS) -o $@ $(OBJECTS) + +$(CXX_OBJS:.cc=.o): + $(CXX) $(COMPAT) $(CCFLAGS) -c $< + +$(notdir $(C_OBJS:.c=.o)): + $(CC) $(COMPAT) $(CFLAGS) $(XFLAGS) -c $< + + +install: $(TARGET) + mkdir -p $(DESTDIR)$(libdir) + mkdir -p $(DESTDIR)$(incdir)/$(HEADER_DIR) + $(INSTALL) -m 755 $(TARGET) $(DESTDIR)$(libdir)/$(TARGET) + $(INSTALL) -m 644 $(HEADERS) -t $(DESTDIR)$(incdir)/$(HEADER_DIR) + +uninstall: + rm -f $(DESTDIR)$(libdir)/$(TARGET) + rm -f $(DESTDIR)$(incdir)/$(HEADERS) + rmdir $(DESTDIR)$(incdir)/$(HEADER_DIR) 2>/dev/null || true + rmdir $(DESTDIR)$(libdir) 2>/dev/null || true + +install-strip: + $(MAKE) $(MFLAGS) install INSTALL="$(INSTALL) -s" + +check: install + $(MAKE) $(MFLAGS) -C tests -f Makefile.$(TARGET_OS) + +clean: + rm -f $(OBJECTS) $(TARGET) + $(MAKE) $(MFLAGS) -C tests -f Makefile.$(TARGET_OS) clean + +distclean: clean + rm -f $(MAKEFILE_DEP) + +NODEP_TARGETS = + +dep: $(C_OBJS) $(CXX_OBJS) + $(CC) -MM $(COMPAT) $(CFLAGS) $(XFLAGS) $^ >$(MAKEFILE_DEP) +ifeq ($(filter $(MAKECMDGOALS),$(NODEP_TARGETS)),) +-include $(MAKEFILE_DEP) +endif diff --git a/balabit-build b/balabit-build index 90ca6ee..c15d170 100755 --- a/balabit-build +++ b/balabit-build @@ -22,10 +22,10 @@ case "$cmd" in # No bootstrap ;; configure) - make PREFIX=$ZWA_MODULE_INSTALL_DIR dep + make -f Makefile.linux PREFIX=$ZWA_MODULE_INSTALL_DIR dep ;; make) - make PREFIX=$ZWA_MODULE_INSTALL_DIR "$@" + make -f Makefile.linux PREFIX=$ZWA_MODULE_INSTALL_DIR "$@" ;; *) echo "Unknown command: '$cmd'." >&2 diff --git a/debian/rules b/debian/rules index d461fae..4a36994 100755 --- a/debian/rules +++ b/debian/rules @@ -13,12 +13,12 @@ endif build: dh_testdir - $(MAKE) dep - $(MAKE) libtermcapparser.so + $(MAKE) linux-dep + $(MAKE) linux-libtermcapparser.so clean: dh_testdir - -$(MAKE) clean + -$(MAKE) linux-clean dh_clean diff --git a/tests/Makefile b/tests/Makefile.linux similarity index 68% rename from tests/Makefile rename to tests/Makefile.linux index 0ea2658..d9e899d 100644 --- a/tests/Makefile +++ b/tests/Makefile.linux @@ -1,12 +1,12 @@ CXXFLAGS= -I$(PREFIX)/include -O0 -g -Wall -I.. -LDFLAGS = -L$(PREFIX)/lib -lpthread -ltermcapparser -L.. -L/usr/lib -lgmock -lgtest -lpthread +LDFLAGS = -L$(PREFIX)/lib -ltermcapparser -L/usr/lib -lgmock -lgtest -lpthread OBJECTS = test.o cell.o row.o state.o palette.o termcapparser.o all: test runtest .PHONY: runtest: test - ./test + LD_LIBRARY_PATH=$(PREFIX)/lib:${LD_LIBRARY_PATH} ./test .PHONY: clean: