convert makefile to be more portable
This commit is contained in:
		
				
					committed by
					
						 Leonardo Hernández Hernández
						Leonardo Hernández Hernández
					
				
			
			
				
	
			
			
			
						parent
						
							a5a0674f6a
						
					
				
				
					commit
					7b42232ad1
				
			
							
								
								
									
										108
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,19 +1,60 @@ | ||||
| .POSIX: | ||||
| .SUFFIXES: | ||||
|  | ||||
| include config.mk | ||||
|  | ||||
| CFLAGS += -I. -DWLR_USE_UNSTABLE -std=c99 -pedantic -DVERSION=\"$(VERSION)\" | ||||
| # flags for compiling | ||||
| DWLCPPFLAGS = -I. -DWLR_USE_UNSTABLE -DVERSION=\"$(VERSION)\" | ||||
|  | ||||
| WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols) | ||||
| WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner) | ||||
| # Wayland utils | ||||
| WAYLAND_PROTOCOLS = `pkg-config --variable=pkgdatadir wayland-protocols` | ||||
| WAYLAND_SCANNER   = `pkg-config --variable=wayland_scanner wayland-scanner` | ||||
|  | ||||
| PKGS = wlroots wayland-server xcb xkbcommon libinput | ||||
| CFLAGS += $(foreach p,$(PKGS),$(shell pkg-config --cflags $(p))) | ||||
| LDLIBS += $(foreach p,$(PKGS),$(shell pkg-config --libs $(p))) | ||||
| # CFLAGS / LDFLAGS | ||||
| PKGS      = wlroots wayland-server xcb xkbcommon libinput | ||||
| DWLCFLAGS = `pkg-config --cflags $(PKGS)` $(DWLCPPFLAGS) $(CFLAGS) $(XWAYLAND) | ||||
| LDLIBS    = `pkg-config --libs $(PKGS)` | ||||
|  | ||||
| # build rules | ||||
|  | ||||
| # wayland-scanner is a tool which generates C headers and rigging for Wayland | ||||
| # protocols, which are specified in XML. wlroots requires you to rig these up | ||||
| # to your build system yourself and provide them in the include path. | ||||
| all: dwl | ||||
| dwl: dwl.o xdg-shell-protocol.o wlr-layer-shell-unstable-v1-protocol.o idle-protocol.o util.o | ||||
| 	$(CC) $(LDLIBS) -o $@ dwl.o xdg-shell-protocol.o wlr-layer-shell-unstable-v1-protocol.o idle-protocol.o util.o | ||||
| dwl.o: dwl.c config.mk config.h client.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h idle-protocol.h | ||||
| xdg-shell-protocol.o: xdg-shell-protocol.h xdg-shell-protocol.c | ||||
| wlr-layer-shell-unstable-v1-protocol.o: wlr-layer-shell-unstable-v1-protocol.h wlr-layer-shell-unstable-v1-protocol.c | ||||
| idle-protocol.o: idle-protocol.h idle-protocol.c | ||||
| util.o: util.c util.h | ||||
|  | ||||
| # wayland scanner rules to generate .h / .c files | ||||
| xdg-shell-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ | ||||
| xdg-shell-protocol.c: | ||||
| 	$(WAYLAND_SCANNER) private-code \ | ||||
| 		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ | ||||
| wlr-layer-shell-unstable-v1-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		protocols/wlr-layer-shell-unstable-v1.xml $@ | ||||
| wlr-layer-shell-unstable-v1-protocol.c: | ||||
| 	$(WAYLAND_SCANNER) private-code \ | ||||
| 		protocols/wlr-layer-shell-unstable-v1.xml $@ | ||||
| idle-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		protocols/idle.xml $@ | ||||
| idle-protocol.c: | ||||
| 	$(WAYLAND_SCANNER) private-code \ | ||||
| 		protocols/idle.xml $@ | ||||
|  | ||||
| config.h: | ||||
| 	cp config.def.h $@ | ||||
| clean: | ||||
| 	rm -f dwl *.o *-protocol.h *-protocol.c | ||||
|  | ||||
| # distribution archive | ||||
| dist: clean | ||||
| 	mkdir -p dwl-$(VERSION) | ||||
| 	cp -R LICENSE* Makefile README.md generate-version.sh client.h\ | ||||
| @@ -23,51 +64,18 @@ dist: clean | ||||
| 	tar -caf dwl-$(VERSION).tar.gz dwl-$(VERSION) | ||||
| 	rm -rf dwl-$(VERSION) | ||||
|  | ||||
| install: dwl | ||||
| 	install -Dm755 dwl $(DESTDIR)$(PREFIX)/bin/dwl | ||||
| 	install -Dm644 dwl.1 $(DESTDIR)$(MANDIR)/man1/dwl.1 | ||||
| # install rules | ||||
|  | ||||
| install: dwl | ||||
| 	mkdir -p $(DESTDIR)$(PREFIX)/bin | ||||
| 	cp dwl $(DESTDIR)$(PREFIX)/bin | ||||
| 	chmod 755 $(DESTDIR)$(PREFIX)/bin/dwl | ||||
| 	mkdir -p $(DESTDIR)$(MANDIR)/man1 | ||||
| 	cp dwl.1 $(DESTDIR)$(MANDIR)/man1 | ||||
| 	chmod 644 $(DESTDIR)$(MANDIR)/man1/dwl.1 | ||||
| uninstall: | ||||
| 	rm -f $(DESTDIR)$(PREFIX)/bin/dwl $(DESTDIR)$(MANDIR)/man1/dwl.1 | ||||
|  | ||||
| .PHONY: all clean dist install uninstall | ||||
|  | ||||
| # wayland-scanner is a tool which generates C headers and rigging for Wayland | ||||
| # protocols, which are specified in XML. wlroots requires you to rig these up | ||||
| # to your build system yourself and provide them in the include path. | ||||
| xdg-shell-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ | ||||
|  | ||||
| xdg-shell-protocol.c: | ||||
| 	$(WAYLAND_SCANNER) private-code \ | ||||
| 		$(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@ | ||||
|  | ||||
| xdg-shell-protocol.o: xdg-shell-protocol.h | ||||
|  | ||||
| wlr-layer-shell-unstable-v1-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		protocols/wlr-layer-shell-unstable-v1.xml $@ | ||||
|  | ||||
| wlr-layer-shell-unstable-v1-protocol.c: | ||||
| 	$(WAYLAND_SCANNER) private-code \ | ||||
| 		protocols/wlr-layer-shell-unstable-v1.xml $@ | ||||
|  | ||||
| wlr-layer-shell-unstable-v1-protocol.o: wlr-layer-shell-unstable-v1-protocol.h | ||||
|  | ||||
| idle-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		protocols/idle.xml $@ | ||||
|  | ||||
| idle-protocol.c: | ||||
| 	$(WAYLAND_SCANNER) private-code \ | ||||
| 		protocols/idle.xml $@ | ||||
|  | ||||
| idle-protocol.o: idle-protocol.h | ||||
|  | ||||
| config.h: | config.def.h | ||||
| 	cp config.def.h $@ | ||||
|  | ||||
| dwl.o: config.mk config.h client.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h idle-protocol.h util.h | ||||
|  | ||||
| dwl: xdg-shell-protocol.o wlr-layer-shell-unstable-v1-protocol.o idle-protocol.o util.o | ||||
| .SUFFIXES: .c .o | ||||
| .c.o: | ||||
| 	$(CC) $(CPPFLAGS) $(DWLCFLAGS) -c $< | ||||
|   | ||||
		Reference in New Issue
	
	Block a user