Browse Source

simplify Makefile

Due to consideration of POSIX compliance issues config.mk had
to be removed. Configuration variables can be overridden by
environment variables or specified via command line.

Additionally all pretty-printed messages were removed and
built-in rules are used. This also simplifies and purges
the Makefile.
master
Matthias-Christian Ott 16 years ago
parent
commit
e0d0a2b96e
2 changed files with 32 additions and 85 deletions
  1. +32
    -51
      Makefile
  2. +0
    -34
      config.mk

+ 32
- 51
Makefile View File

@ -1,64 +1,45 @@
# st - simple terminal # st - simple terminal
# See LICENSE file for copyright and license details. # See LICENSE file for copyright and license details.
include config.mk
VERSION = 0.0
SRC = st.c std.c pty.c
OBJ = ${SRC:.c=.o}
PREFIX = /usr/local
MANDIR = $(PREFIX)/share/man
all: options st std
CFLAGS = -DVERSION=\"0.0\" -D_GNU_SOURCE
options:
@echo st build options:
@echo "CFLAGS = ${CFLAGS}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "X11LDFLAGS = ${X11LDFLAGS}"
@echo "CC = ${CC}"
.c.o:
@echo CC $<
@${CC} -c ${CFLAGS} $<
${OBJ}: config.mk
st: st.o
@echo CC -o $@
@${CC} -o $@ $^ ${LDFLAGS} ${X11LDFLAGS}
std: std.o pty.o
@echo CC -o $@
@${CC} -o $@ $^ ${LDFLAGS}
all: st std
clean: clean:
@echo cleaning
@rm -f st std ${OBJ} st-${VERSION}.tar.gz
rm -f st std
rm -f st.o std.o
rm -f st-$(VERSION).tar.gz
dist: clean dist: clean
@echo creating dist tarball
@mkdir -p st-${VERSION}
@cp -R LICENSE Makefile README config.mk \
st.1 ${SRC} st-${VERSION}
@tar -cf st-${VERSION}.tar st-${VERSION}
@gzip st-${VERSION}.tar
@rm -rf st-${VERSION}
install: all
@echo installing executable file to ${DESTDIR}${PREFIX}/bin
@mkdir -p ${DESTDIR}${PREFIX}/bin
@cp -f st ${DESTDIR}${PREFIX}/bin
@cp -f std ${DESTDIR}${PREFIX}/bin
@chmod 755 ${DESTDIR}${PREFIX}/bin/st
@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
@mkdir -p ${DESTDIR}${MANPREFIX}/man1
@sed "s/VERSION/${VERSION}/g" < st.1 > ${DESTDIR}${MANPREFIX}/man1/st.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/st.1
@sed "s/VERSION/${VERSION}/g" < std.1 > ${DESTDIR}${MANPREFIX}/man1/std.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/std.1
mkdir st-$(VERSION)
cp -f LICENSE README st-$(VERSION)
cp -f Makefile config.mk st-$(VERSION)
cp -f st.1 std.1 st-$(VERSION)
cp -f st.c std.c st-$(VERSION)
tar -czf st-$(VERSION).tar st-$(VERSION)
rm -rf st-$(VERSION)
install:
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp -f st $(DESTDIR)$(PREFIX)/bin
cp -f std $(DESTDIR)$(PREFIX)/bin
chmod 755 $(DESTDIR)$(PREFIX)/bin/st
chmod 755 $(DESTDIR)$(PREFIX)/bin/std
mkdir -p $(DESTDIR)$(MANDIR)/man1
sed 's/VERSION/$(VERSION)/g' < st.1 > $(DESTDIR)$(MANDIR)/man1/st.1
chmod 644 $(DESTDIR)$(MANDIR)/man1/st.1
sed 's/VERSION/$(VERSION)/g' < std.1 > $(DESTDIR)$(MANDIR)/man1/std.1
chmod 644 $(DESTDIR)$(MANDIR)/man1/std.1
uninstall: uninstall:
@echo removing executable file from ${DESTDIR}${PREFIX}/bin
@rm -f ${DESTDIR}${PREFIX}/bin/st
@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
@rm -f ${DESTDIR}${MANPREFIX}/man1/st.1
rm -f $(DESTDIR)$(PREFIX)/bin/st
rm -f $(DESTDIR)$(PREFIX)/bin/std
rm -f $(DESTDIR)$(MANDIR)/man1/st.1
rm -f $(DESTDIR)$(MANDIR)/man1/std.1
.PHONY: all options clean dist install uninstall
.PHONY: all clean dist install uninstall

+ 0
- 34
config.mk View File

@ -1,34 +0,0 @@
# st version
VERSION = 0.0
# Customize below to fit your system
# paths
PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
# includes and libs
INCS = -I. -I/usr/include -I${X11INC}
LIBS = -L/usr/lib -lc
X11LIBS = -L${X11LIB} -lX11
# glibc
CPPFLAGS = -DVERSION=\"${VERSION}\" -D_GNU_SOURCE
# flags
#CPPFLAGS = -DVERSION=\"${VERSION}\"
CFLAGS = -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -s ${LIBS}
X11LDFLAGS = ${X11LIBS}
#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} ${CPPFLAGS}
#LDFLAGS = -g ${LIBS}
# Solaris
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = ${LIBS}
# compiler and linker
CC = cc

Loading…
Cancel
Save