Makefile 3.44 KB
Newer Older
1
#  Makefile for hexer version 0.2.3
2

3
#  Copyright (c) 1995,1996 Sascha Demetrio
4
#  Copyright (c) 2009 - 2011, 2014, 2015 Peter Pentchev
5

6 7 8 9 10
#  It might be helpful to read the `README'-file first.

#  -- Where? --
#  The following lines determine where the binaries and manual pages for
#  hexer are gonna live.
11 12 13
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
MANDIR ?= $(PREFIX)/man/man1
14 15 16 17 18

#  -- Which terminal library? --
#  (It's probably save to leave the following lines unchanged.)
#
#  Use the following two lines, if you want to use the termcap-library.
19 20
#LTERMLIB ?=
#LTERMCAP ?= -ltermcap
21 22
#
#  Uncomment these if you want to use curses.
23 24
LTERMLIB ?=
LTERMCAP ?= -lcurses
25 26 27
#
#  Uncomment the following two lines if you want to use the termlib code
#  supplied with the package (not recommended).
28 29
#LTERMLIB = termlib.o
#LTERMCAP =
30

31 32
CPPFLAGS_STD ?= -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700

33 34
#  If you want to add some system specific defines, it's probably more
#  appropriate to put them into `config.h'.
35
CPPFLAGS += $(CPPFLAGS_STD) -DHEXER_VERSION=\"0.2.3\"
36 37

#  -- Which compiler? --
38 39 40
CC ?= cc
CFLAGS ?= -O
LDFLAGS ?=
41
LDLIBS = $(LTERMCAP) -lm
42 43 44
#
#  Uncomment the following lines if you want to use the GNU compiler.
#CC = gcc
45
#CFLAGS = -O6
46
#LDFALGS =
47
#LDLIBS = $(LTERMCAP)
48 49

#  -- Which installer? --
50 51 52
INSTALL ?= install
INSTALLBIN ?= $(INSTALL) -s
INSTALLMAN ?= $(INSTALL) -m 644
53 54 55 56 57 58
#
#  Uncomment these if you don't have an installer.
#INSTALL = cp
#INSTALLBIN = $(INSTALL)
#INSTALLMAN = $(INSTALL)

59 60
MKDIR ?= mkdir -p

61 62 63 64 65 66 67 68 69
###  It shouldn't be necessary to change anything below this line.

HEXER = hexer
MYC = myc

CTAGS = ctags -tawf tags

OBJECTS = buffer.o tio.o edit.o main.o hexer.o readline.o regex.o port.o \
          exh.o set.o map.o signal.o util.o commands.o helptext.o calc.o \
70
	  $(LTERMLIB)
71 72 73 74 75 76 77 78 79 80 81 82 83 84

all: config.check $(HEXER)

config.check:
	@{  if [ ! -f config.h ]; then \
	      echo '***' Please read the file README on how to configure and; \
	      echo '***' compile hexer.\  Thank you.; \
	      exit 1; \
	    fi; }

$(HEXER): $(OBJECTS)
	$(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LDLIBS)

$(MYC): calc.c
85
	$(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) -DMYCALC=1 -o $@ calc.c -lm
86 87

bin2c: bin2c.c
88
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ bin2c.c
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

helptext.c: help.txt bin2c
	./bin2c -n helptext -o $@ help.txt

tags: *.c *.h
	-@{ \
	  echo Creating tags...; \
	  rm -f tags; \
	  for i in *.c *.h; do \
            echo $(CTAGS) $$i; \
	    $(CTAGS) $$i; \
	  done; \
	}

dep: depend

depend: *.c *.h
	-rm -f Makefile~
	sed '/\#\#\# DO NOT DELETE THIS LINE \#\#\#/q' \
	  < Makefile > Makefile~
	-echo >> Makefile~
	-echo '#' Dependencies: >> Makefile~
	-echo >> Makefile~
	@{ for i in *.c; do \
113
	      if [ "$$i" != 'termlib.c' ]; then \
114 115
	      echo $(CC) -MM $(CPPFLAGS) $$i '>>' Makefile~; \
	      $(CC) -MM $(CPPFLAGS) $$i >> Makefile~; \
116
	      fi \
117 118 119 120 121 122
	    done; }
	-echo >> Makefile~
	mv -f Makefile~ Makefile
	-touch depend

clean:
123 124 125
	rm -f $(HEXER) $(MYC) gen_testfile $(OBJECTS) bin2c
	rm -f helptext.c TESTFILE
	rm -f tags core *.bak
126 127

distclean: clean
128
	rm -f *~
129 130
	sed '/\#\#\# DO NOT DELETE THIS LINE \#\#\#/q' \
	  < Makefile > Makefile~
131
	echo >> Makefile~
132
	mv -f Makefile~ Makefile
133
	rm -f depend
134 135

install: all
136
	$(MKDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)
137 138 139 140
	$(INSTALLBIN) $(HEXER) $(DESTDIR)$(BINDIR)
	$(INSTALLMAN) $(HEXER).1 $(DESTDIR)$(MANDIR)
	[ ! -f $(MYC) ] || $(INSTALLBIN) $(MYC) $(DESTDIR)$(BINDIR)
	[ ! -f $(MYC) ] || $(INSTALLMAN) $(MYC).1 $(DESTDIR)$(MANDIR)
141 142 143

### DO NOT DELETE THIS LINE ###