| 1 | # |
|---|
| 2 | # Makefile for the RAT project. This requires GNU make on many systems. |
|---|
| 3 | # |
|---|
| 4 | |
|---|
| 5 | # Configure substitutes variables here... ##################################### |
|---|
| 6 | |
|---|
| 7 | DEFS = @DEFS@ |
|---|
| 8 | CFLAGS = @CFLAGS@ $(DEFS) |
|---|
| 9 | LIBS = @LIBS@ @MATHLIBS@ |
|---|
| 10 | LDLIBS = |
|---|
| 11 | INCLUDE = @AU_INC@ @TCL_INC@ @TK_INC@ @COMMON_INC@ |
|---|
| 12 | CC = @CC@ |
|---|
| 13 | AR = ar |
|---|
| 14 | RANLIB = @RANLIB@ |
|---|
| 15 | ECHO ?= echo |
|---|
| 16 | |
|---|
| 17 | VERSION = @VERSION@ |
|---|
| 18 | OSTYPE = @OSTYPE@ |
|---|
| 19 | RATVER = rat-$(VERSION) |
|---|
| 20 | |
|---|
| 21 | AU_OBJ = @AU_OBJ@ |
|---|
| 22 | AU_INC = @AU_INC@ |
|---|
| 23 | AU_LIB = @AU_LIB@ |
|---|
| 24 | |
|---|
| 25 | TCL_LIB = @TCL_LIB@ |
|---|
| 26 | TK_LIB = @TK_LIB@ |
|---|
| 27 | X_CFLAGS = @X_CFLAGS@ |
|---|
| 28 | X_LIB = @X_PRE_LIBS@ @X_LIBS@ -lX11 -lXext @X_EXTRA_LIBS@ |
|---|
| 29 | COMMON_LIB = @COMMON_LIB@ |
|---|
| 30 | EXTRA_OBJ = @EXTRA_OBJ@ |
|---|
| 31 | EXTERNAL_DEP = @EXTERNAL_DEP@ |
|---|
| 32 | |
|---|
| 33 | prefix = @prefix@ |
|---|
| 34 | exec_prefix = @exec_prefix@ |
|---|
| 35 | bindir = @bindir@ |
|---|
| 36 | mandir = @mandir@ |
|---|
| 37 | |
|---|
| 38 | # Nothing below here set by configure ######################################### |
|---|
| 39 | |
|---|
| 40 | AUDIO_OBJS = $(AU_OBJ) auddev_null.o audio_fmt.o audio_util.o \ |
|---|
| 41 | auddev_trans.o auddev.o |
|---|
| 42 | |
|---|
| 43 | CODEC_OBJS = codec.o codec_state.o codec_dvi.o codec_gsm.o \ |
|---|
| 44 | codec_l16.o codec_g711.o codec_g726.o codec_lpc.o \ |
|---|
| 45 | codec_types.o codec_vdvi.o codec_wbs.o \ |
|---|
| 46 | cx_g726.o cx_g726_16.o cx_g726_24.o cx_g726_32.o cx_g726_40.o \ |
|---|
| 47 | cx_gsm.o cx_lpc.o cx_vdvi.o cx_wbs.o cx_dvi.o \ |
|---|
| 48 | converter.o convert_util.o convert_extra.o convert_linear.o \ |
|---|
| 49 | convert_sinc.o bitstream.o |
|---|
| 50 | |
|---|
| 51 | SNDFILE_OBJS = sndfile.o sndfile_au.o sndfile_raw.o sndfile_wav.o |
|---|
| 52 | |
|---|
| 53 | MEDIALIBS = libuclaudio.a libuclcodec.a libuclsndfile.a |
|---|
| 54 | |
|---|
| 55 | CHANNEL_OBJS = channel.o channel_types.o cc_vanilla.o cc_rdncy.o cc_layered.o |
|---|
| 56 | |
|---|
| 57 | TOY_OBJS = render_3D.o repair.o |
|---|
| 58 | |
|---|
| 59 | CORE_OBJS = ts.o playout.o net.o source.o session.o \ |
|---|
| 60 | mbus_engine.o audio.o cushion.o mix.o \ |
|---|
| 61 | parameters.o timers.o transmit.o playout_calc.o \ |
|---|
| 62 | transcoder.o ui.o rtp_callback.o rtt.o settings.o \ |
|---|
| 63 | pdb.o pktbuf.o $(EXTRA_OBJ) |
|---|
| 64 | |
|---|
| 65 | UI_OBJS = tcltk.o mbus_ui.o main_ui.o |
|---|
| 66 | |
|---|
| 67 | CTRL_OBJS = main_control.o mbus_control.o codec_compat.o |
|---|
| 68 | |
|---|
| 69 | TCL_OBJS = ui_audiotool.o ui_transcoder.o |
|---|
| 70 | |
|---|
| 71 | TCL_SRCS = $(TCL_OBJS:%.o=%.c) |
|---|
| 72 | |
|---|
| 73 | ALL_OBJS = $(AUDIO_OBJS) $(CODEC_OBJS) $(SNDFILE_OBJS) $(CHANNEL_OBJS) \ |
|---|
| 74 | $(TOY_OBJS) $(CORE_OBJS) $(UI_OBJS) $(CTRL_OBJS) |
|---|
| 75 | |
|---|
| 76 | ALL_SRCS = $(ALL_OBJS:%.o=%.c) |
|---|
| 77 | |
|---|
| 78 | all: version.h sdr2.plugin.S02.audio.rtp.-.$(RATVER) $(RATVER).spec $(RATVER) $(RATVER)-ui $(RATVER)-media |
|---|
| 79 | |
|---|
| 80 | install: all |
|---|
| 81 | ./install-sh -m 555 -c $(RATVER) $(bindir) |
|---|
| 82 | ./install-sh -m 555 -c $(RATVER)-media $(bindir) |
|---|
| 83 | ./install-sh -m 555 -c $(RATVER)-ui $(bindir) |
|---|
| 84 | ./install-sh -m 444 -c man/man1/rat.1 $(mandir)/man1/rat.1 |
|---|
| 85 | ./install-sh -m 444 -c sdr2.plugin.S02.audio.rtp.-.$(RATVER) $(prefix)/etc/sdr/plugins |
|---|
| 86 | |
|---|
| 87 | libuclaudio.a: $(AUDIO_OBJS) |
|---|
| 88 | $(AR) r $@ $(AUDIO_OBJS) |
|---|
| 89 | $(RANLIB) $@ |
|---|
| 90 | |
|---|
| 91 | libuclcodec.a: $(CODEC_OBJS) |
|---|
| 92 | $(AR) r $@ $(CODEC_OBJS) |
|---|
| 93 | $(RANLIB) $@ |
|---|
| 94 | |
|---|
| 95 | libuclsndfile.a: $(SNDFILE_OBJS) |
|---|
| 96 | $(AR) r $@ $(SNDFILE_OBJS) |
|---|
| 97 | $(RANLIB) $@ |
|---|
| 98 | |
|---|
| 99 | $(RATVER)-media: $(CHANNEL_OBJS) $(TOY_OBJS) $(CORE_OBJS) $(MEDIALIBS) main_engine.o $(EXTERNAL_DEP) |
|---|
| 100 | $(CC) $(CFLAGS) $(CHANNEL_OBJS) $(TOY_OBJS) $(CORE_OBJS) $(MEDIALIBS) main_engine.o $(COMMON_LIB) $(AU_LIB) $(LIBS) -o $(RATVER)-media |
|---|
| 101 | |
|---|
| 102 | $(RATVER)-ui: $(TCL_OBJS) $(UI_OBJS) $(EXTERNAL_DEP) |
|---|
| 103 | $(CC) $(CFLAGS) $(TCL_OBJS) $(UI_OBJS) $(COMMON_LIB) $(X_LIB) $(TCL_LIB) $(TK_LIB) $(LIBS) -o $(RATVER)-ui |
|---|
| 104 | |
|---|
| 105 | $(RATVER): $(CTRL_OBJS) $(EXTERNAL_DEP) |
|---|
| 106 | $(CC) $(CFLAGS) $(CTRL_OBJS) $(COMMON_LIB) $(LIBS) -o $(RATVER) |
|---|
| 107 | |
|---|
| 108 | .c.o: |
|---|
| 109 | $(CC) $(CFLAGS) $(X_CFLAGS) $(INCLUDE) -c $< |
|---|
| 110 | |
|---|
| 111 | $(TCL_OBJS): $(TCL_SRCS) |
|---|
| 112 | |
|---|
| 113 | ui_transcoder.c: ui_transcoder.tcl tcl2c/tcl2c |
|---|
| 114 | cat ui_transcoder.tcl | tcl2c/tcl2c ui_transcoder > ui_transcoder.c |
|---|
| 115 | |
|---|
| 116 | ui_audiotool.c: ui_audiotool.tcl tcl2c/tcl2c |
|---|
| 117 | cat asfilebox.tcl ui_audiotool.tcl | tcl2c/tcl2c ui_audiotool > ui_audiotool.c |
|---|
| 118 | |
|---|
| 119 | tcl2c/tcl2c: tcl2c/tcl2c.c |
|---|
| 120 | $(CC) -o tcl2c/tcl2c tcl2c/tcl2c.c |
|---|
| 121 | |
|---|
| 122 | version.h: VERSION |
|---|
| 123 | @${ECHO} "Generating version.h" |
|---|
| 124 | @sed -e 's/.*/#define RAT_VERSION "RAT v& $(OSTYPE)"/' VERSION > version.h |
|---|
| 125 | @sed -e 's/.*/#define VERSION_NUM "&"/' VERSION >> version.h |
|---|
| 126 | |
|---|
| 127 | sdr2.plugin.S02.audio.rtp.-.rat-$(VERSION): sdr2.plugin.in |
|---|
| 128 | @${ECHO} "Generating sdr plugin" |
|---|
| 129 | @${ECHO} "# Generated automatically from sdr2.plugin.in" > $@ |
|---|
| 130 | @${ECHO} "# DO NOT EDIT THIS FILE" >> $@ |
|---|
| 131 | @sed -e 's/VERSION/$(VERSION)/g' sdr2.plugin.in >> $@ |
|---|
| 132 | |
|---|
| 133 | rat-$(VERSION).spec: rat.spec |
|---|
| 134 | @${ECHO} "Generating RPM spec file" |
|---|
| 135 | @${ECHO} "# Generated automatically from rat.spec" > $@ |
|---|
| 136 | @${ECHO} "# DO NOT EDIT THIS FILE" >> $@ |
|---|
| 137 | @cat rat.spec | sed s/VERSION/$(VERSION)/g >> $@ |
|---|
| 138 | |
|---|
| 139 | clean: |
|---|
| 140 | -rm -f $(CTRL_OBJS) $(AUDIO_OBJS) $(CODEC_OBJS) $(SNDFILE_OBJS) $(CHANNEL_OBJS) $(TOY_OBJS) $(CORE_OBJS) $(UI_OBJS) $(TCL_OBJS) main_engine.o |
|---|
| 141 | -rm -f $(MEDIALIBS) |
|---|
| 142 | -rm -f tcl_libs.c ui_audiotool.c ui_transcoder.c version.h |
|---|
| 143 | -rm -f tcl2c/tcl2c sdr2.plugin.S02.audio.rtp.-.$(RATVER) $(RATVER).spec |
|---|
| 144 | -rm -f $(RATVER)-media $(RATVER)-ui $(RATVER) |
|---|
| 145 | |
|---|
| 146 | distclean: clean |
|---|
| 147 | -rm -rf config.cache config.log config.status ratconf.h Makefile |
|---|
| 148 | -rm -rf core core-$(RATVER)-media core-$(RATVER)-ui |
|---|
| 149 | |
|---|
| 150 | etags: |
|---|
| 151 | etags ../common/*.[ch] *.[ch] |
|---|
| 152 | |
|---|
| 153 | ctags: |
|---|
| 154 | ctags ../common/*.[ch] *.[ch] |
|---|
| 155 | |
|---|
| 156 | release: |
|---|
| 157 | cvs tag release-`cat VERSION | sed "s/\./-/g"` |
|---|
| 158 | |
|---|
| 159 | tgz: $(RATVER) $(RATVER)-ui $(RATVER)-media |
|---|
| 160 | tar cf $(RATVER)-$(OSTYPE).tar README.* MODS COPYRIGHT INSTALL.TXT VERSION $(RATVER) $(RATVER)-ui $(RATVER)-media |
|---|
| 161 | gzip -9 $(RATVER)-$(OSTYPE).tar |
|---|
| 162 | |
|---|
| 163 | rpm: tgz |
|---|
| 164 | @${ECHO} "Building $(RATVER).rpm -- this almost certainly needs to run as root on RedHat Linux" |
|---|
| 165 | install -m 644 $(RATVER)-$(OSTYPE).tar.gz /usr/src/redhat/SOURCES/rat-4.1.2.tar.gz |
|---|
| 166 | rpm -bb $(RATVER).spec |
|---|
| 167 | |
|---|
| 168 | |
|---|
| 169 | depend: |
|---|
| 170 | makedepend $(X_CFLAGS) $(INCLUDE) $(ALL_SRCS) |
|---|
| 171 | # DO NOT DELETE THIS LINE |
|---|