=== Overview ===
[xuni.git] / src / Makewin
blobc04f19b814409a09747ef5e274d1e01a2300e312
1 # Makefile for xuni's src/ subdirectory, Windows version
3 LIBPATH = -L ../lib
4 INCPATH = -I . -I ../include
6 CC = /home/dwk/bin/egcc.exe
7 CFLAGS = -W -Wall -Wno-unused-parameter -ansi -pedantic -Wno-endif-labels -g \
8     $(INCPATH) $(LIBPATH) -fPIC
9 LDFLAGS = -rdynamic -lm -lSDL -lSDL_image -lSDL_gfx -lSDL_ttf -lSGE \
10     -lexpat -lmxml
12 YACC = bison
14 METASOURCES = calc.y
15 GENSOURCES = $(METASOURCES:.y=.c)
16 SOURCES = error.c graphics.c gui.c loadso.c loop.c memory.c utility.c xuni.c
17 HEADERS = $(SOURCES:.c=.h) version.h
18 WIDGET_OBJECTS = widget/box.o widget/button.o widget/checkbox.o \
19     widget/combobox.o widget/dump.o widget/font.o widget/image.o \
20     widget/image_tile.o widget/label.o widget/listbox.o widget/panel.o \
21     widget/scrollbar.o widget/textbox.o widget/theme.o widget/widgets.o
22 RESOURCE_OBJECTS = resource/libexpat.o resource/libmxml.o resource/resource.o \
23     resource/xmlwrite.o
24 EDITOR_OBJECTS = editor/editor.o
25 OBJECTS = $(SOURCES:.c=.o) $(GENSOURCES:.c=.o)
26 TEST_OBJECTS = test/main.o test/menu.o test/options.o
27 LIBRARY_OBJECTS = $(OBJECTS) $(WIDGET_OBJECTS) $(RESOURCE_OBJECTS)
28 LIBRARY = libxuni.a
29 TESTTARGET = ../test.exe
30 EDITORTARGET = ../xuni.exe
31 TARGETS = $(TESTTARGET) $(EDITORTARGET)
33 WIDGET = widget
34 TEST = test
35 RESOURCE = resource
36 EDITOR = editor
38 SUBDIRS = $(WIDGET) $(TEST) $(RESOURCE) $(EDITOR)
40 # Default target: all
41 .PHONY: all
42 all: $(LIBRARY) $(TEST) $(EDITOR) $(TARGETS)
44 # Executable files and libraries
45 $(TESTTARGET): $(LIBRARY) $(TEST_OBJECTS)
46         $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) -L . -lxuni $(LDFLAGS)
47 $(EDITORTARGET): $(LIBRARY) $(EDITOR_OBJECTS)
48         $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) -L . -lxuni $(LDFLAGS)
50 $(LIBRARY): $(LIBRARY_OBJECTS) | $(WIDGET) $(RESOURCE)
51         $(AR) cr $@ $?
53 # Generated source files
54 calc.c: calc.y
55         $(YACC) --output-file=calc.c calc.y
57 # Source file dependency list
58 -include depend
60 # Targets from and relating to subdirectories
61 .PHONY: $(SUBDIRS)
62 $(SUBDIRS):
63         $(MAKE) -C $@ -f Makewin
65 # Other targets
66 .PHONY: clean wc
67 depend:
68         $(MAKE) -C $(WIDGET) -f Makewin $@
69         gcc -MM $(CFLAGS) $(SOURCES) | ./gendepend.pl > depend
70 clean:  # not GENSOURCES
71         -rm $(TARGETS) $(LIBRARY_OBJECTS) $(TEST_OBJECTS) $(EDITOR_OBJECTS)
72 wc:
73         wc $(SOURCES) $(METASOURCES) $(HEADERS) \
74             $(WIDGET_OBJECTS:.o=.c) $(WIDGET_OBJECTS:.o=.h) \
75             $(TEST_OBJECTS:.o=.c) $(TEST_OBJECTS:.o=.h) \
76             $(RESOURCE_OBJECTS:.o=.c) $(RESOURCE_OBJECTS:.o=.h) \
77             $(EDITOR_OBJECTS:.o=.c) $(EDITOR_OBJECTS:.o=.h) \
78             version.h