1#
2# makefile for Linux
3#
4# by default things get put into directories one level up from src directory
5# and all rules are literal and per file so primitive makes will work
6#
7# this is good starting point for porting to other systems
8#
9
10# define location flags
11INCS=-I../pli_incs
12OBJS=../objs
13BIN=../bin
14
15# you can replace dummy main with your more complicated main
16MAINOBJ=$(OBJS)/dig_main.o
17
18# define list of object files explictly - if add must update list
19CVER_OBJS=$(OBJS)/cver.o $(OBJS)/v_src.o $(OBJS)/v_src2.o $(OBJS)/v_src3.o \
20$(OBJS)/v_fx.o $(OBJS)/v_fx2.o $(OBJS)/v_fx3.o $(OBJS)/v_cnv.o \
21$(OBJS)/v_ex.o $(OBJS)/v_ex2.o $(OBJS)/v_ex3.o $(OBJS)/v_ex4.o \
22$(OBJS)/v_trch.o $(OBJS)/v_del.o $(OBJS)/v_sdf.o $(OBJS)/v_prp.o \
23$(OBJS)/v_prp2.o $(OBJS)/v_sim.o $(OBJS)/v_dbg.o $(OBJS)/v_dbg2.o \
24$(OBJS)/v_ms.o $(OBJS)/v_tf.o $(OBJS)/v_acc.o $(OBJS)/v_vpi.o \
25$(OBJS)/v_vpi2.o $(OBJS)/v_vpi3.o
26
27# define compilation flags
28WARNS=-Wall
29# omit frame pointer option needed for 25% speed improvment
30OPTFLGS=-fno-strength-reduce -fomit-frame-pointer
31# option good in general, change if you know your X86 architecture
32ARCHFLGS= -march=pentiumpro
33
34# select one of the sets of C flags - comment out others
35
36# cflags when making optimized cver
37CFLAGS= $(ARCHFLGS) -pipe $(WARNS) $(INCS) $(OPTFLGS) -O2
38
39# cflags when making -g debugging version
40# CFLAGS= $(ARCHFLGS) -pipe $(WARNS) $(INCS) -g
41
42# cflags when making malloc and -g debugging version
43# assumes dbmalloc-14L2.tgz .a lib and malloc.h installed one level up
44# CFLAGS= $(ARCHFLGS) -pipe $(WARNS) $(INCS) -D__DBMALLOC__ -g
45
46# change gcc version if needed
47CC=gcc
48
49# select loader
50LD=ld
51# needed for dynamic PLI loading
52LFLAGS=-export-dynamic
53
54# system libs
55LIBS= -lm -ldl
56# select to use dbmalloc if installed
57# LIBS= -lm ../libdbmalloc.a
58
59# rule for making the cver binary
60cver:	$(MAINOBJ) $(CVER_OBJS)
61	$(CC) $(CFLAGS) $(LFLAGS) $(MAINOBJ) $(CVER_OBJS) \
62	$(LIBS) -o $(BIN)/cver
63
64$(OBJS):	v.h systsks.h cvmacros.h
65
66$(OBJS)/dig_main.o:	dig_main.c
67	$(CC) $(CFLAGS) -o $(OBJS)/dig_main.o -c dig_main.c
68
69# when adding source files need lines here - insures right c files used
70$(OBJS)/cver.o:	cver.c
71	$(CC) $(CFLAGS) -o $(OBJS)/cver.o -c cver.c
72
73$(OBJS)/v_src.o:	v_src.c
74	$(CC) $(CFLAGS) -o $(OBJS)/v_src.o -c v_src.c
75
76$(OBJS)/v_src2.o:	v_src2.c
77	$(CC) $(CFLAGS) -o $(OBJS)/v_src2.o -c v_src2.c
78
79$(OBJS)/v_src3.o:	v_src3.c
80	$(CC) $(CFLAGS) -o $(OBJS)/v_src3.o -c v_src3.c
81
82$(OBJS)/v_fx.o:	v_fx.c
83	$(CC) $(CFLAGS) -o $(OBJS)/v_fx.o -c v_fx.c
84
85$(OBJS)/v_fx2.o:	v_fx2.c
86	$(CC) $(CFLAGS) -o $(OBJS)/v_fx2.o -c v_fx2.c
87
88$(OBJS)/v_fx3.o:	v_fx3.c
89	$(CC) $(CFLAGS) -o $(OBJS)/v_fx3.o -c v_fx3.c
90
91$(OBJS)/v_cnv.o:	v_cnv.c
92	$(CC) $(CFLAGS) -o $(OBJS)/v_cnv.o -c v_cnv.c
93
94$(OBJS)/v_ex.o:	v_ex.c
95	$(CC) $(CFLAGS) -o $(OBJS)/v_ex.o -c v_ex.c
96
97$(OBJS)/v_ex2.o:	v_ex2.c
98	$(CC) $(CFLAGS) -o $(OBJS)/v_ex2.o -c v_ex2.c
99
100$(OBJS)/v_ex3.o:	v_ex3.c
101	$(CC) $(CFLAGS) -o $(OBJS)/v_ex3.o -c v_ex3.c
102
103$(OBJS)/v_ex4.o:	v_ex4.c
104	$(CC) $(CFLAGS) -o $(OBJS)/v_ex4.o -c v_ex4.c
105
106$(OBJS)/v_trch.o:	v_trch.c
107	$(CC) $(CFLAGS) -o $(OBJS)/v_trch.o -c v_trch.c
108
109$(OBJS)/v_del.o:	v_del.c
110	$(CC) $(CFLAGS) -o $(OBJS)/v_del.o -c v_del.c
111
112$(OBJS)/v_sdf.o:	v_sdf.c
113	$(CC) $(CFLAGS) -o $(OBJS)/v_sdf.o -c v_sdf.c
114
115$(OBJS)/v_prp.o:	v_prp.c
116	$(CC) $(CFLAGS) -o $(OBJS)/v_prp.o -c v_prp.c
117
118$(OBJS)/v_prp2.o:	v_prp2.c
119	$(CC) $(CFLAGS) -o $(OBJS)/v_prp2.o -c v_prp2.c
120
121$(OBJS)/v_sim.o:	v_sim.c
122	$(CC) $(CFLAGS) -o $(OBJS)/v_sim.o -c v_sim.c
123
124$(OBJS)/v_dbg.o:	v_dbg.c
125	$(CC) $(CFLAGS) -o $(OBJS)/v_dbg.o -c v_dbg.c
126
127$(OBJS)/v_dbg2.o:	v_dbg2.c
128	$(CC) $(CFLAGS) -o $(OBJS)/v_dbg2.o -c v_dbg2.c
129
130$(OBJS)/v_ms.o:	v_ms.c
131	$(CC) $(CFLAGS) -o $(OBJS)/v_ms.o -c v_ms.c
132
133$(OBJS)/v_tf.o:	v_tf.c
134	$(CC) $(CFLAGS) -o $(OBJS)/v_tf.o -c v_tf.c
135
136$(OBJS)/v_vpi.o:	v_vpi.c
137	$(CC) $(CFLAGS) -o $(OBJS)/v_vpi.o -c v_vpi.c
138
139$(OBJS)/v_vpi2.o:	v_vpi2.c
140	$(CC) $(CFLAGS) -o $(OBJS)/v_vpi2.o -c v_vpi2.c
141
142$(OBJS)/v_vpi3.o:	v_vpi3.c
143	$(CC) $(CFLAGS) -o $(OBJS)/v_vpi3.o -c v_vpi3.c
144
145$(OBJS)/v_acc.o:	v_acc.c
146	$(CC) $(CFLAGS) -o $(OBJS)/v_acc.o -c v_acc.c
147
148all:	cver
149	echo "done"
150
151# no make clean - just erase all .o files and binary
152clean:
153	rm -f $(OBJS)/*.o $(BIN)/cver
154