mirror of https://github.com/pikami/st.git
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.
This commit is contained in:
parent
082d8bb82b
commit
e0d0a2b96e
81
Makefile
81
Makefile
|
@ -1,64 +1,45 @@
|
|||
# st - simple terminal
|
||||
# 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:
|
||||
@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
|
||||
@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}
|
||||
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: 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
|
||||
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:
|
||||
@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
|
||||
|
|
34
config.mk
34
config.mk
|
@ -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…
Reference in New Issue