ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/xyz2pov/src/Makefile
Revision: 509
Committed: Tue Apr 29 17:45:47 2003 UTC (21 years, 2 months ago) by mmeineke
File size: 3705 byte(s)
Log Message:
Rearranged the source tree to be easier to distribute.
Added autoconf and automatic dependency generation

File Contents

# User Rev Content
1 mmeineke 509 #####################################################
2     # Makefile for xyz2pov #
3     #####################################################
4     # You should not change anything here. #
5     #####################################################
6 mmeineke 60
7 mmeineke 509 TOP=..
8 mmeineke 60
9 mmeineke 509 include $(TOP)/Make.conf
10 mmeineke 60
11 mmeineke 509 .SUFFIXES : .cpp .c .h .hpp $(O)
12 mmeineke 60
13 mmeineke 509 # First do compile-time flags:
14 mmeineke 60
15 mmeineke 509 DECLARES= -DTYPES_PATH="$(ATOMTYPES_DIR)"
16 mmeineke 60
17 mmeineke 509 # include paths starting with "." are all relative to the SUBDIRS!!!
18 mmeineke 60
19 mmeineke 509 INCLUDES= -I..
20     CXXFLAGS=$(CXXFLAGS_C) $(INCLUDES) $(DECLARES)
21     CFLAGS=$(CFLAGS_C) $(INCLUDES) $(DECLARES)
22     DEPFLAGS=$(CFLAGS_C) -I.
23 mmeineke 60
24 mmeineke 509 XYZ2POV=xyz2pov$(EXE)
25     POV2ANIM=pov2anim$(EXE)
26 mmeineke 60
27 mmeineke 509 POVTOOLS_LIB = libpovtools.a
28    
29     XYZ2POV_LDFLAGS= -L.
30     XYZ2POV_LDADD= -lpovtools -lm
31    
32     POV2ANIM_LDFLAGS= -L.
33     POV2ANIM_LDADD= -lpovtools -lm
34    
35     PREFS=-DXYZ2POV_HOME="$(XYZ2POV_HOME)"
36    
37     # Then do the compile rules:
38    
39     obj/%.o: %.cpp
40     cd obj; $(CXX) $(CXXFLAGS) -c ../$<
41    
42     obj/%.o: %.c
43     cd obj; $(CC) $(CFLAGS) -c ../$<
44    
45     # Then list what we have to compile
46    
47     LIBC_FILES = \
48     $(DIR)/atom_parser.c \
49     $(DIR)/frameCount.c \
50     $(DIR)/pov_writer.c
51    
52     LIBCXX_FILES =
53    
54     XYZC_FILES = \
55     $(DIR)/xyz2pov.c
56    
57     XYZCXX_FILES =
58    
59     ANIMC_FILES = \
60     $(DIR)/pov2anim.c
61    
62     ANIMCXX_FILES =
63    
64     DIR:=.
65     LIBC_SRCS := $(LIBC_FILES)
66     LIBCXX_SRCS := $(LIBCXX_FILES)
67     LIB_SRCS := $(LIBC_SRCS) $(LIBCXX_SRCS)
68    
69     DIR:=.
70     XYZC_SRCS := $(XYZC_FILES)
71     XYZCXX_SRCS := $(XYZCXX_FILES)
72     XYZ_SRCS := $(XYZC_SRCS) $(XYZCXX_SRCS)
73    
74     DIR:=.
75     ANIMC_SRCS := $(ANIMC_FILES)
76     ANIMCXX_SRCS := $(ANIMCXX_FILES)
77     ANIM_SRCS := $(ANIMC_SRCS) $(ANIMCXX_SRCS)
78    
79     SRCS := $(LIB_SRCS) $(XYZ_SRCS) $(ANIM_SRCS)
80    
81     DIR:=obj
82     LIBC_OBJS := $(LIBC_FILES:.c=.o)
83     LIBCXX_OBJS := $(LIBCXX_FILES:.cpp=.o)
84     LIB_OBJS := $(LIBC_OBJS) $(LIBCXX_OBJS)
85    
86     DIR:=obj
87     XYZC_OBJS := $(XYZC_FILES:.c=.o)
88     XYZCXX_OBJS := $(XYZCXX_FILES:.cpp=.o)
89     XYZ_OBJS := $(XYZC_OBJS) $(XYZCXX_OBJS)
90    
91     DIR:=obj
92     ANIMC_OBJS := $(ANIMC_FILES:.c=.o)
93     ANIMCXX_OBJS := $(ANIMCXX_FILES:.cpp=.o)
94     ANIM_OBJS := $(ANIMC_OBJS) $(ANIMCXX_OBJS)
95    
96     LIBSUBDIRS = obj
97    
98     all : Make.dep $(POVTOOLS_LIB) $(POV2ANIM) $(XYZ2POV)
99    
100     depend: Make.dep
101    
102     libpovtools.a: $(LIB_OBJS)
103     $(RM) $@
104     $(AR) cr $@ $(OBJS)
105     $(RANLIB) $@
106    
107     xyz2pov$(EXE) : $(XYZ_OBJS) $(POVTOOLS_LIB)
108     $(CC) $(CFLAGS) $(XYZ_OBJS) -o $@ $(XYZ2POV_LDFLAGS) $(XYZ2POV_LDADD)
109    
110     pov2anim$(EXE) : $(ANIM_OBJS) $(POVTOOLS_LIB)
111     $(CC) $(CFLAGS) $(ANIM_OBJS) -o $@ $(POV2ANIM_LDFLAGS) $(POV2ANIM_LDADD)
112    
113     install : $(POV2ANIM) $(XYZ2POV)
114     $(MKINSTALLDIRS) $(XYZ2POV_HOME)/bin
115     $(INSTALL_PROGRAM) -s $(XYZ2POV) $(XYZ2POV_HOME)/bin/$(XYZ2POV)
116     $(INSTALL_PROGRAM) -s $(POV2ANIM) $(XYZ2POV_HOME)/bin/$(POV2ANIM)
117    
118     tests : dummy
119    
120     $(XYZ2POV_HOME)/bin/$(XYZ2POV) : $(XYZ2POV)
121     $(MAKE) install
122    
123     $(XYZ2POV_HOME)/bin/$(POV2ANIM) : $(POV2ANIM)
124     $(MAKE) install
125    
126     links : $(XYZ2POV_HOME)/bin/$(XYZ2POV) $(XYZ2POV_HOME)/bin/$(POV2ANIM)
127     $(MKINSTALLDIRS) $(PREFIX)/bin
128     cd $(PREFIX)/bin; $(RM) $(XYZ2POV); $(LN_S) $(XYZ2POV_HOME)/bin/$(XYZ2POV) $(XYZ2POV)
129     cd $(PREFIX)/bin; $(RM) $(POV2ANIM); $(LN_S) $(XYZ2POV_HOME)/bin/$(POV2ANIM) $(POV2ANIM)
130    
131    
132     # cleaning
133    
134     .PHONY : clean
135    
136     clean : dummy
137     for i in $(LIBSUBDIRS); do \
138     (cd $$i; $(RM) *.o) || exit 1; \
139     done
140     $(RM) $(POVTOOLS_LIB) $(XYZ2POV) $(ANIM2POV) *.o *~ Make.temp
141    
142     distclean : dummy
143     for i in $(LIBSUBDIRS); do \
144     (cd $$i; $(RM) *.o) || exit 1; \
145     done
146     $(RM) $(POVTOOLS_LIB) $(XYZ2POV) $(ANIM2POV) *.o *~ Make.temp Make.dep
147    
148     devclean : distclean
149    
150     Make.dep : $(SRCS)
151     echo "# DO NOT DELETE THIS LINE - used by make depend" > Make.dep
152     $(CC) $(DEPFLAGS) -MM $(SRCS) \
153     | sed 's/\.o:/\$$(O)\ :/g' > Make.temp
154     cat Make.temp | sed 's/^/obj\//' >> Make.dep
155     $(RM) Make.temp
156    
157     tags : $(SRCS)
158     ctags $(SRCS)
159    
160     dummy :
161    
162     # DO NOT DELETE
163     include Make.dep