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 | # 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: all | install: | ||||||
| 	@echo installing executable file to ${DESTDIR}${PREFIX}/bin | 	mkdir -p $(DESTDIR)$(PREFIX)/bin | ||||||
| 	@mkdir -p ${DESTDIR}${PREFIX}/bin | 	cp -f st $(DESTDIR)$(PREFIX)/bin | ||||||
| 	@cp -f st ${DESTDIR}${PREFIX}/bin | 	cp -f std $(DESTDIR)$(PREFIX)/bin | ||||||
| 	@cp -f std ${DESTDIR}${PREFIX}/bin | 	chmod 755 $(DESTDIR)$(PREFIX)/bin/st | ||||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/st | 	chmod 755 $(DESTDIR)$(PREFIX)/bin/std | ||||||
| 	@echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 | 	mkdir -p $(DESTDIR)$(MANDIR)/man1 | ||||||
| 	@mkdir -p ${DESTDIR}${MANPREFIX}/man1 | 	sed 's/VERSION/$(VERSION)/g' < st.1 > $(DESTDIR)$(MANDIR)/man1/st.1 | ||||||
| 	@sed "s/VERSION/${VERSION}/g" < st.1 > ${DESTDIR}${MANPREFIX}/man1/st.1 | 	chmod 644 $(DESTDIR)$(MANDIR)/man1/st.1 | ||||||
| 	@chmod 644 ${DESTDIR}${MANPREFIX}/man1/st.1 | 	sed 's/VERSION/$(VERSION)/g' < std.1 > $(DESTDIR)$(MANDIR)/man1/std.1 | ||||||
| 	@sed "s/VERSION/${VERSION}/g" < std.1 > ${DESTDIR}${MANPREFIX}/man1/std.1 | 	chmod 644 $(DESTDIR)$(MANDIR)/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 | ||||||
|   | |||||||
							
								
								
									
										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