forked from gulje/curse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
46 lines (36 loc) · 1.06 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
override TARGET = curse
override LIBCURSE_X11 = libcurse-x11.a
override LIBCURSE_WL = libcurse-wl.a
export MAIN_CFLAGS = -std=c11 \
-Wall \
-I$(shell pwd)/include
CFLAGS = \
-L.
BINARY_DEPS =
BINARY_SOURCES = $(wildcard src/*.c)
BINARY_OBJECTS = $(BINARY_SOURCES:.c=.o)
ifneq ($(curse_build_wl),1)
BINARY_DEPS += $(LIBCURSE_X11)
CFLAGS += -lcurse-x11 -lX11
MAIN_CFLAGS += -DCURSE_X11
else
BINARY_DEPS += $(LIBCURSE_WL)
CFLAGS += -lcurse-wl
MAIN_CFLAGS += -DCURSE_WL
endif
.PHONY: all $(LIBCURSE_X11) $(LIBCURSE_WL) libcurse curse
all: $(LIBCURSE_X11) $(LIBCURSE_WL) _$(TARGET)
curse: _$(TARGET)
libcurse: $(BINARY_DEPS)
_$(TARGET): $(BINARY_DEPS) $(BINARY_OBJECTS)
gcc $(BINARY_OBJECTS) $(CFLAGS) -o $(TARGET) $(MAIN_CFLAGS)
%.o: %.c
gcc $(MAIN_CFLAGS) -c -o $@ $<
$(LIBCURSE_X11):
@$(MAKE) -C src/x11 TARGET=$(shell pwd)/$@
$(LIBCURSE_WL):
@$(MAKE) -C src/wayland TARGET=$(shell pwd)/$@
clean:
@$(MAKE) -C src/x11 clean TARGET=$(shell pwd)/$(LIBCURSE_X11)
@$(MAKE) -C src/wayland clean TARGET=$(shell pwd)/$(LIBCURSE_WL)
rm -rf $(TARGET) $(BINARY_OBJECTS)