Krolyxon
Commit 81cfbf1

Branches

Refs →

nsxiv81cfbf1

Renamed XLIBS to config, added -D/-l options

Author
Bert
Date
2011-09-13 10:08 +0200
Parent
255dd5b
Commit
81cfbf171dfd11c6f8a4d277159ee077b5ca0255

+52 −30

4 files changed

  1. M .gitignore +1 −1
  2. M Makefile +6 −6
  3. D XLIBS.c +0 −23
  4. A config.c +45 −0
M .gitignore View
@@ -1,4 +1,4 @@
1−XLIBS
1+config
22 config.h
33 *.o
44 sxiv
M Makefile View
@@ -24,27 +24,27 @@ options:
2424 @echo "CC $<"
2525 @$(CC) $(CFLAGS) -DVERSION=\"$(VERSION)\" -c -o $@ $<
2626
27−$(OBJ) XLIBS: Makefile config.h
27+$(OBJ) config: Makefile config.h
2828
29−XLIBS: XLIBS.c
29+config: config.c
3030 @$(CC) $(CFLAGS) -o $@ $@.c
3131
3232 config.h:
3333 @echo "creating $@ from config.def.h"
3434 @cp config.def.h $@
3535
36−sxiv: $(OBJ) XLIBS
36+sxiv: $(OBJ) config
3737 @echo "CC -o $@"
38− @$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $$(./XLIBS)
38+ @$(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $$(./config -l)
3939
4040 clean:
4141 @echo "cleaning"
42− @rm -f $(OBJ) XLIBS sxiv sxiv-$(VERSION).tar.gz
42+ @rm -f $(OBJ) config sxiv sxiv-$(VERSION).tar.gz
4343
4444 dist: clean
4545 @echo "creating dist tarball"
4646 @mkdir -p sxiv-$(VERSION)
47− @cp LICENSE Makefile README.md config.def.h sxiv.1 $(SRC) XLIBS.c \
47+ @cp LICENSE Makefile README.md config.def.h sxiv.1 $(SRC) config.c \
4848 sxiv-$(VERSION)
4949 @tar -cf sxiv-$(VERSION).tar sxiv-$(VERSION)
5050 @gzip sxiv-$(VERSION).tar
D XLIBS.c View
@@ -1,23 +0,0 @@
1−#define _POSIX_C_SOURCE 200112L
2−#define _FEATURE_CONFIG
3−
4−#include <stdio.h>
5−
6−#include "config.h"
7−
8−int n = 0;
9−
10−inline void put_lib_flag(const char *flag, int needed) {
11− if (needed)
12− printf("%s%s", n++ ? " " : "", flag);
13−}
14−
15−int main(int argc, char **argv) {
16− put_lib_flag("-lexif", EXIF_SUPPORT);
17− put_lib_flag("-lgif", GIF_SUPPORT);
18−
19− if (n)
20− printf("\n");
21−
22− return 0;
23−}
A config.c View
@@ -0,0 +1,45 @@
1+#define _POSIX_C_SOURCE 200112L
2+#define _FEATURE_CONFIG
3+
4+#include <stdio.h>
5+#include <string.h>
6+
7+#include "config.h"
8+
9+#define QUOTE(m) #m
10+#define PUT_MACRO(m) \
11+ printf("%s-D%s=%s", n++ ? " " : "", #m, QUOTE(m))
12+
13+int n = 0;
14+
15+inline void puts_if(const char *s, int c) {
16+ if (c)
17+ printf("%s%s", n++ ? " " : "", s);
18+}
19+
20+inline void endl() {
21+ if (n) {
22+ printf("\n");
23+ n = 0;
24+ }
25+}
26+
27+int main(int argc, char **argv) {
28+ int i;
29+
30+ for (i = 1; i < argc; i++) {
31+ if (!strcmp(argv[i], "-D")) {
32+ PUT_MACRO(EXIF_SUPPORT);
33+ PUT_MACRO(GIF_SUPPORT);
34+ endl();
35+ } else if (!strcmp(argv[i], "-l")) {
36+ puts_if("-lexif", EXIF_SUPPORT);
37+ puts_if("-lgif", GIF_SUPPORT);
38+ endl();
39+ } else {
40+ fprintf(stderr, "%s: invalid argument: %s\n", argv[0], argv[i]);
41+ return 1;
42+ }
43+ }
44+ return 0;
45+}