Clean up the Makefile, and fix a linking problem
authorAntonio Ospite <ao2@ao2.it>
Mon, 18 Aug 2014 11:09:17 +0000 (13:09 +0200)
committerAntonio Ospite <ao2@ao2.it>
Mon, 18 Aug 2014 11:10:22 +0000 (13:10 +0200)
Use the implicit rule for single source file programs.

Specify CFLAGS and LDLIBS appropriately.

Also link against libX11 explicitly in order to fix this linking error:

  cc -ansi -Wall -pedantic -ggdb     xicursorset.c  -lXi -lXcursor  -o xicursorset
  /usr/bin/ld: /tmp/cc6cA5Ex.o: undefined reference to symbol 'XFlush'
  //usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
  collect2: error: ld returned 1 exit status
  <builtin>: recipe for target 'xicursorset' failed
  make: *** [xicursorset] Error 1

Makefile

index 3fff7f7..407d4cc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
 CFLAGS := -ansi -Wall -pedantic
 CFLAGS += -ggdb
+CFLAGS += $(shell pkg-config --cflags x11 xi xcursor)
 
-LDFLAGS := $(shell pkg-config --cflags --libs xi xcursor)
+LDLIBS := $(shell pkg-config --libs x11 xi xcursor)
 
-xicursorset: xicursorset.c
-       $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
+all: xicursorset
 
 clean:
        rm -f xicursorset *.o