1.SUFFIXES: .cpp
2
3#for sgi   -- comment out the lines below to use on HP
4#CC=CC -g0 -o32
5#CC=gcc
6
7# Compiler options
8#OPTS=-g
9#OPTS=-O0
10OPTS=-O2
11
12UNAME = $(shell uname)
13
14ifeq ($(UNAME), Linux)
15CXX       = g++
16CPPFLAGS += $(OPTS) -Wall -pedantic
17endif
18
19#######################################
20
21CPPFLAGS += -I./ -I./include
22
23LIBGLUI = -L./lib -lglui
24LIBGL   = -lGLU -lGL
25LIBS    = -lXmu -lXext -lX11 -lXi -lm
26
27# One of the following options only...
28
29# (1) OpenGLUT
30# LIBGLUT   = -L/usr/X11R6/lib -lopenglut
31# CPPFLAGS += -I/usr/X11R6/include -DGLUI_OPENGLUT
32
33# (2) FreeGLUT
34LIBGLUT   = -L/usr/X11R6/lib -lglut
35CPPFLAGS += -I/usr/X11R6/include -DGLUI_FREEGLUT
36
37# (3) GLUT
38#LIBGLUT   = -framework OpenGL -framework GLUT
39#LIBGLUT   = -L/usr/X11R6/lib -lglut
40#CPPFLAGS += -I/usr/X11R6/include
41
42#######################################
43
44GLUI_OBJS = glui_add_controls.o glui_string.o glui.o glui_bitmap_img_data.o glui_bitmaps.o glui_button.o glui_edittext.o glui_commandline.o glui_checkbox.o glui_node.o glui_radio.o glui_statictext.o glui_panel.o glui_separator.o glui_spinner.o glui_control.o glui_column.o glui_translation.o glui_rotation.o glui_mouse_iaction.o glui_listbox.o glui_rollout.o glui_window.o arcball.o algebra3.o quaternion.o viewmodel.o glui_treepanel.o glui_tree.o glui_textbox.o glui_scrollbar.o glui_list.o glui_filebrowser.o
45
46GLUI_LIB = lib/libglui.a
47
48GLUI_EXAMPLES = bin/example1 bin/example2 bin/example3 bin/example4 bin/example5 bin/example6
49
50GLUI_TOOLS = bin/ppm2array
51
52.PHONY: all setup examples tools clean depend dist
53
54all: setup $(GLUI_LIB) examples tools
55
56setup:
57	mkdir -p bin
58	mkdir -p lib
59
60examples: $(GLUI_EXAMPLES)
61
62tools: $(GLUI_TOOLS)
63
64bin/ppm2array: tools/ppm2array.cpp tools/ppm.cpp
65	$(CXX) $(CPPFLAGS) -o $@ $^
66
67bin/%: example/%.cpp $(GLUI_LIB)
68	$(CXX) $(CPPFLAGS) -o $@ $<  $(LIBGLUI) $(LIBGLUT) $(LIBGL) $(LIBS)
69
70$(GLUI_LIB): $(GLUI_OBJS)
71	ar -r $(GLUI_LIB) $(GLUI_OBJS)
72
73.cpp.o:
74	$(CXX) $(CPPFLAGS) -c $<
75
76.c.o:
77	$(CXX) $(CPPFLAGS) -c $<
78
79docs:
80	doxygen doc/doxygen.cfg
81
82clean:
83	rm -f *.o $(GLUI_LIB) $(GLUI_EXAMPLES) $(GLUI_TOOLS)
84	rm -fr doc/html
85
86depend:
87	makedepend -Y./include `find -name "*.cpp"` `find -name "*.c"`
88
89DIST = glui-2.3.0
90
91dist: clean
92	mkdir -p $(DIST)
93	cp --parents \
94		`find -type f -name "*.cpp"` \
95		`find -type f -name "*.c"` \
96		`find -type f -name "*.h"` \
97		`find -type f -name "*.dev"` \
98		`find -type f -name "*.dsp"` \
99		`find -type f -name "*.dsw"` \
100		`find -type f -name "*.vcproj"` \
101		`find -type f -name "*.sln"` \
102		`find -type f -name "*.txt"` \
103		makefile \
104		$(DIST)
105	tar cv $(DIST) | gzip -9 - > $(DIST).tgz
106	rm -Rf $(DIST)
107
108# DO NOT DELETE THIS LINE -- make depend depends on it.
109
110./algebra3.o: algebra3.h glui_internal.h
111./arcball.o: arcball.h glui_internal.h algebra3.h quaternion.h
112./glui_button.o: ./include/GL/glui.h glui_internal.h
113./glui_checkbox.o: ./include/GL/glui.h glui_internal.h
114./glui_column.o: ./include/GL/glui.h glui_internal.h
115./glui_control.o: ./include/GL/glui.h glui_internal.h
116./glui_edittext.o: ./include/GL/glui.h glui_internal.h
117./glui_listbox.o: ./include/GL/glui.h glui_internal.h
118./glui_mouse_iaction.o: ./include/GL/glui.h glui_internal.h
119./glui_node.o: ./include/GL/glui.h glui_internal.h
120./glui_panel.o: ./include/GL/glui.h glui_internal.h
121./glui_radio.o: ./include/GL/glui.h glui_internal.h
122./glui_rollout.o: ./include/GL/glui.h glui_internal.h
123./glui_rotation.o: ./include/GL/glui.h arcball.h glui_internal.h algebra3.h
124./glui_rotation.o: quaternion.h
125./glui_separator.o: ./include/GL/glui.h glui_internal.h
126./glui_spinner.o: ./include/GL/glui.h glui_internal.h
127./glui_translation.o: ./include/GL/glui.h glui_internal.h algebra3.h
128./glui_window.o: ./include/GL/glui.h glui_internal.h
129./quaternion.o: quaternion.h algebra3.h glui_internal.h
130./viewmodel.o: viewmodel.h algebra3.h ./include/GL/glui.h
131./glui_bitmaps.o: ./include/GL/glui.h glui_internal.h
132./glui_statictext.o: ./include/GL/glui.h glui_internal.h
133./glui.o: ./include/GL/glui.h glui_internal.h
134./glui_add_controls.o: ./include/GL/glui.h glui_internal.h
135./glui_commandline.o: ./include/GL/glui.h glui_internal.h
136./glui_list.o: ./include/GL/glui.h glui_internal.h
137./glui_scrollbar.o: ./include/GL/glui.h glui_internal.h
138./glui_string.o: ./include/GL/glui.h
139./glui_textbox.o: ./include/GL/glui.h glui_internal.h
140./glui_tree.o: ./include/GL/glui.h glui_internal.h
141./glui_treepanel.o: ./include/GL/glui.h
142./example/example1.o: ./include/GL/glui.h
143./example/example2.o: ./include/GL/glui.h
144./example/example3.o: ./include/GL/glui.h
145./example/example4.o: ./include/GL/glui.h
146./example/example5.o: ./include/GL/glui.h
147./example/example6.o: ./include/GL/glui.h
148./tools/ppm2array.o: ./tools/ppm.hpp
149./glui_filebrowser.o: ./include/GL/glui.h glui_internal.h
150