rework Makefile
- allow user to use a different pkg-config binary - restore almost all (and add other ones) warning flags (-Werror is not set) - $(XWAYLAND) is added to our CPPFLAGS - remove useless comments - don't generate idle-protocol.h (not used)
This commit is contained in:
		
							
								
								
									
										31
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								Makefile
									
									
									
									
									
								
							| @@ -4,45 +4,38 @@ | ||||
| include config.mk | ||||
|  | ||||
| # flags for compiling | ||||
| DWLCPPFLAGS = -I. -DWLR_USE_UNSTABLE -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" | ||||
|  | ||||
| # Wayland utils | ||||
| WAYLAND_PROTOCOLS = `pkg-config --variable=pkgdatadir wayland-protocols` | ||||
| WAYLAND_SCANNER   = `pkg-config --variable=wayland_scanner wayland-scanner` | ||||
| DWLCPPFLAGS = -I. -DWLR_USE_UNSTABLE -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" $(XWAYLAND) | ||||
| DWLDEVCFLAGS = -pedantic -Wall -Wextra -Wdeclaration-after-statement -Wno-unused-parameter -Wno-sign-compare -Wshadow -Wunused-macros | ||||
|  | ||||
| # CFLAGS / LDFLAGS | ||||
| PKGS      = wlroots wayland-server xkbcommon libinput $(XLIBS) | ||||
| DWLCFLAGS = `pkg-config --cflags $(PKGS)` $(DWLCPPFLAGS) $(CFLAGS) $(XWAYLAND) | ||||
| LDLIBS    = `pkg-config --libs $(PKGS)` $(LIBS) | ||||
| DWLCFLAGS = `$(PKG_CONFIG) --cflags $(PKGS)` $(DWLCPPFLAGS) $(DWLDEVCFLAGS) $(CFLAGS) | ||||
| LDLIBS    = `$(PKG_CONFIG) --libs $(PKGS)` $(LIBS) | ||||
|  | ||||
| # build rules | ||||
| all: dwl | ||||
| dwl: dwl.o util.o | ||||
| 	$(CC) dwl.o util.o $(LDLIBS) $(LDFLAGS) $(DWLCFLAGS) -o $@ | ||||
| dwl.o: dwl.c config.mk config.h client.h xdg-shell-protocol.h wlr-layer-shell-unstable-v1-protocol.h | ||||
| util.o: util.c util.h | ||||
|  | ||||
| # 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 util.o | ||||
| 	$(CC) dwl.o util.o $(LDLIBS) $(LDFLAGS) $(DWLCFLAGS) -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 | ||||
| util.o: util.c util.h | ||||
| WAYLAND_SCANNER   = `$(PKG_CONFIG) --variable=wayland_scanner wayland-scanner` | ||||
| WAYLAND_PROTOCOLS = `$(PKG_CONFIG) --variable=pkgdatadir wayland-protocols` | ||||
|  | ||||
| # wayland scanner rules to generate .h / .c files | ||||
| xdg-shell-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		$(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 $@ | ||||
| idle-protocol.h: | ||||
| 	$(WAYLAND_SCANNER) server-header \ | ||||
| 		protocols/idle.xml $@ | ||||
|  | ||||
| config.h: | ||||
| 	cp config.def.h $@ | ||||
| clean: | ||||
| 	rm -f dwl *.o *-protocol.h | ||||
|  | ||||
| # distribution archive | ||||
| dist: clean | ||||
| 	mkdir -p dwl-$(VERSION) | ||||
| 	cp -R LICENSE* Makefile README.md client.h config.def.h\ | ||||
| @@ -51,8 +44,6 @@ dist: clean | ||||
| 	tar -caf dwl-$(VERSION).tar.gz dwl-$(VERSION) | ||||
| 	rm -rf dwl-$(VERSION) | ||||
|  | ||||
| # install rules | ||||
|  | ||||
| install: dwl | ||||
| 	mkdir -p $(DESTDIR)$(PREFIX)/bin | ||||
| 	cp -f dwl $(DESTDIR)$(PREFIX)/bin | ||||
|   | ||||
		Reference in New Issue
	
	Block a user