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 17 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 PREFIX = /usr/local
OBJ = ${SRC:.c=.o} MANDIR = $(PREFIX)/share/man
all: options st std CFLAGS = -DVERSION=\"0.0\" -D_GNU_SOURCE
options: all: st std
@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}
clean: clean:
@echo cleaning rm -f st std
@rm -f st std ${OBJ} st-${VERSION}.tar.gz rm -f st.o std.o
rm -f st-$(VERSION).tar.gz
dist: clean dist: clean
@echo creating dist tarball mkdir st-$(VERSION)
@mkdir -p st-${VERSION} cp -f LICENSE README st-$(VERSION)
@cp -R LICENSE Makefile README config.mk \ cp -f Makefile config.mk st-$(VERSION)
st.1 ${SRC} st-${VERSION} cp -f st.1 std.1 st-$(VERSION)
@tar -cf st-${VERSION}.tar st-${VERSION} cp -f st.c std.c st-$(VERSION)
@gzip st-${VERSION}.tar tar -czf st-$(VERSION).tar st-$(VERSION)
@rm -rf st-${VERSION} rm -rf st-$(VERSION)
install:
install: all mkdir -p $(DESTDIR)$(PREFIX)/bin
@echo installing executable file to ${DESTDIR}${PREFIX}/bin cp -f st $(DESTDIR)$(PREFIX)/bin
@mkdir -p ${DESTDIR}${PREFIX}/bin cp -f std $(DESTDIR)$(PREFIX)/bin
@cp -f st ${DESTDIR}${PREFIX}/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/st
@cp -f std ${DESTDIR}${PREFIX}/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/std
@chmod 755 ${DESTDIR}${PREFIX}/bin/st mkdir -p $(DESTDIR)$(MANDIR)/man1
@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 sed 's/VERSION/$(VERSION)/g' < st.1 > $(DESTDIR)$(MANDIR)/man1/st.1
@mkdir -p ${DESTDIR}${MANPREFIX}/man1 chmod 644 $(DESTDIR)$(MANDIR)/man1/st.1
@sed "s/VERSION/${VERSION}/g" < st.1 > ${DESTDIR}${MANPREFIX}/man1/st.1 sed 's/VERSION/$(VERSION)/g' < std.1 > $(DESTDIR)$(MANDIR)/man1/std.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/st.1 chmod 644 $(DESTDIR)$(MANDIR)/man1/std.1
@sed "s/VERSION/${VERSION}/g" < std.1 > ${DESTDIR}${MANPREFIX}/man1/std.1
@chmod 644 ${DESTDIR}${MANPREFIX}/man1/std.1
uninstall: uninstall:
@echo removing executable file from ${DESTDIR}${PREFIX}/bin rm -f $(DESTDIR)$(PREFIX)/bin/st
@rm -f ${DESTDIR}${PREFIX}/bin/st rm -f $(DESTDIR)$(PREFIX)/bin/std
@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 rm -f $(DESTDIR)$(MANDIR)/man1/st.1
@rm -f ${DESTDIR}${MANPREFIX}/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

|||||||
x
 
000:0
Loading…
Cancel
Save