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:
		
							
								
								
									
										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 | ||||
		Reference in New Issue
	
	Block a user