shithub: aacenc

Download patch

ref: c3b6713ce9add1b13fa50d464eb8bf58e5accb33
parent: 0d8f5344dfcd931fedd1de768a76f34434553cfb
author: menno <menno>
date: Sun Oct 7 09:18:22 EDT 2001

Made faac build on free LCC compiler

--- a/common/libsndfile/src/common.h
+++ b/common/libsndfile/src/common.h
@@ -1,18 +1,18 @@
 /*
 ** Copyright (C) 1999-2000 Erik de Castro Lopo <erikd@zip.com.au>
-**  
+**
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU Lesser General Public License as published by
 ** the Free Software Foundation; either version 2.1 of the License, or
 ** (at your option) any later version.
-** 
+**
 ** This program is distributed in the hope that it will be useful,
 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ** GNU Lesser General Public License for more details.
-** 
+**
 ** You should have received a copy of the GNU Lesser General Public License
-** along with this program; if not, write to the Free Software 
+** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
 
@@ -31,20 +31,20 @@
 #define		BITWIDTH2BYTES(x)	(((x) + 7) / 8)
 
 enum
-{	SF_MODE_READ = 1, 
+{	SF_MODE_READ = 1,
 	SF_MODE_WRITE = 2,
 	SF_MODE_RW = 3
-} ; 
+} ;
 
 enum
-{	SF_ENDIAN_LITTLE = 100, 
+{	SF_ENDIAN_LITTLE = 100,
 	SF_ENDIAN_BIG = 200
-} ; 
+} ;
 
 enum
-{	SF_FALSE = 0, 
+{	SF_FALSE = 0,
 	SF_TRUE = 1
-} ; 
+} ;
 
 typedef	int	(*func_seek) 	(void*, int, int) ;
 
@@ -67,9 +67,9 @@
 	int				mode ;
 	int				error ;
 	int				endian ;
-	
-	SF_INFO			sf ; 
-	
+
+	SF_INFO			sf ;
+
 	long			dataoffset ;		/* Offset in number of bytes from beginning of file. */
 	long			datalength ;		/* Length in bytes of the audio data. */
 	unsigned int	blockwidth ;		/* Size in bytes of one set of interleaved samples. */
@@ -79,7 +79,7 @@
 	long			current ;
 
 	void			*fdata ;
-	
+
 	double			normfactor ;
 
 	func_seek		seek_func ;
@@ -106,8 +106,8 @@
 	SFE_BAD_SF_INFO_PTR,
 	SFE_BAD_INT_FD,
 	SFE_BAD_INT_PTR,
-	SFE_MALLOC_FAILED, 
-	SFE_BAD_SEEK, 
+	SFE_MALLOC_FAILED,
+	SFE_BAD_SEEK,
 	SFE_NOT_SEEKABLE,
 	SFE_UNIMPLEMENTED,
 	SFE_BAD_READ_ALIGN,
@@ -120,7 +120,7 @@
 	SFE_SHORT_READ,
 	SFE_SHORT_WRITE,
 	SFE_INTERNAL,
-	
+
 	SFE_WAV_NO_RIFF,
 	SFE_WAV_NO_WAVE,
 	SFE_WAV_NO_FMT,
@@ -142,19 +142,19 @@
 
 	SFE_AU_UNKNOWN_FORMAT,
 	SFE_AU_NO_DOTSND,
-	
+
 	SFE_RAW_READ_BAD_SPEC,
 	SFE_RAW_BAD_BITWIDTH,
-	
+
 	SFE_PAF_NO_MARKER,
 	SFE_PAF_VERSION,
 	SFE_PAF_UNKNOWN_FORMAT,
 	SFE_PAF_SHORT_HEADER,
-	
-	SFE_SVX_NO_FORM, 
+
+	SFE_SVX_NO_FORM,
 	SFE_SVX_NO_BODY,
 	SFE_SVX_NO_DATA,
-	SFE_SVX_BAD_COMP, 	
+	SFE_SVX_BAD_COMP,
 
 	SFE_NIST_BAD_HEADER,
 	SFE_NIST_BAD_ENCODING,
@@ -193,7 +193,7 @@
 
 
 #ifdef _WIN32
-	#pragma pack(pop,1)
+//	#pragma pack(pop,1)
 #endif
 
 #endif /* COMMON_H_INCLUDED */
--- a/common/libsndfile/src/sndfile.h
+++ b/common/libsndfile/src/sndfile.h
@@ -1,18 +1,18 @@
 /*
 ** Copyright (C) 1999-2000 Erik de Castro Lopo <erikd@zip.com.au>
-**  
+**
 ** This program is free software; you can redistribute it and/or modify
 ** it under the terms of the GNU Lesser General Public License as published by
 ** the Free Software Foundation; either version 2.1 of the License, or
 ** (at your option) any later version.
-** 
+**
 ** This program is distributed in the hope that it will be useful,
 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ** GNU Lesser General Public License for more details.
-** 
+**
 ** You should have received a copy of the GNU Lesser General Public License
-** along with this program; if not, write to the Free Software 
+** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
 
@@ -56,7 +56,7 @@
 	SF_FORMAT_PAF		= 0x60000,		/* Ensoniq PARIS file format. */
 	SF_FORMAT_SVX		= 0x70000,		/* Amiga IFF / SVX8 / SV16 format. */
 	SF_FORMAT_NIST		= 0x80000,		/* Sphere NIST format. */
-	
+
 	SF_FORMAT_PCM		= 0x0001,		/* PCM data in 8, 16, 24 or 32 bits. */
 	SF_FORMAT_FLOAT		= 0x0002,		/* 32 bit floats. */
 	SF_FORMAT_ULAW		= 0x0003,		/* U-Law encoded. */
@@ -68,7 +68,7 @@
 	SF_FORMAT_PCM_LE  	= 0x0008,		/* Little endian PCM data. */
 	SF_FORMAT_PCM_S8	= 0x0009,		/* Signed 8 bit PCM. */
 	SF_FORMAT_PCM_U8  	= 0x000A,		/* Unsigned 8 bit PCM. */
-	
+
 	SF_FORMAT_SVX_FIB	= 0x000B, 		/* SVX Fibonacci Delta encoding. */
 	SF_FORMAT_SVX_EXP	= 0x000C, 		/* SVX Exponential Delta encoding. */
 
@@ -77,7 +77,7 @@
 	SF_FORMAT_G721_32	= 0x000E, 		/* 32kbs G721 ADPCM encoding. */
 	SF_FORMAT_G723_24	= 0x000F, 		/* 24kbs G723 ADPCM encoding. */
 
-	SF_FORMAT_SUBMASK	= 0xFFFF,		
+	SF_FORMAT_SUBMASK	= 0xFFFF,
 	SF_FORMAT_TYPEMASK	= 0x7FFF0000
 } ;
 
@@ -93,8 +93,8 @@
 
 typedef	void	SNDFILE ;
 
-/* A pointer to a SF_INFO structure is passed to sf_open_read () and filled in. 
-** On write, the SF_INFO structure is filled in by the user and passed into  
+/* A pointer to a SF_INFO structure is passed to sf_open_read () and filled in.
+** On write, the SF_INFO structure is filled in by the user and passed into
 ** sf_open_write ().
 */
 
@@ -109,7 +109,7 @@
 } SF_INFO ;
 
 
-/* Open the specified file for read or write. On error, this will return 
+/* Open the specified file for read or write. On error, this will return
 ** a NULL pointer. To find the error number, pass a NULL SNDFILE to
 ** sf_perror () or sf_error_str ().
 */
@@ -118,8 +118,8 @@
 SNDFILE* 	sf_open_write	(const char *path, const SF_INFO *wfinfo) ;
 
 /* sf_perror () prints out the current error state.
-** sf_error_str () returns the current error message to the caller in the 
-** string buffer provided. 
+** sf_error_str () returns the current error message to the caller in the
+** string buffer provided.
 */
 
 int		sf_perror		(SNDFILE *sndfile) ;
@@ -142,12 +142,12 @@
 
 double	sf_signal_max	(SNDFILE *sndfile) ;
 
-/* Seek within the waveform data chunk of the SNDFILE. sf_seek () uses 
+/* Seek within the waveform data chunk of the SNDFILE. sf_seek () uses
 ** the same values for whence (SEEK_SET, SEEK_CUR and SEEK_END) as
 ** stdio.h functions lseek () and fseek ().
-** An offset of zero with whence set to SEEK_SET will position the 
+** An offset of zero with whence set to SEEK_SET will position the
 ** read / write pointer to the first data sample.
-** On success sf_seek returns the current position in (multi-channel) 
+** On success sf_seek returns the current position in (multi-channel)
 ** samples from the start of the file.
 ** On error sf_seek returns -1.
 */
@@ -160,7 +160,7 @@
 size_t	sf_read_raw		(SNDFILE *sndfile, void *ptr, size_t bytes) ;
 size_t	sf_write_raw 	(SNDFILE *sndfile, void *ptr, size_t bytes) ;
 
-/* Functions for reading and writing the data chunk in terms of frames. 
+/* Functions for reading and writing the data chunk in terms of frames.
 ** The number of items actually read/written = frames * number of channels.
 **     sf_xxxx_raw		read/writes the raw data bytes from/to the file
 **     sf_xxxx_uchar	passes data in the unsigned char format
@@ -169,8 +169,8 @@
 **     sf_xxxx_int		passes data in the native int format
 **     sf_xxxx_float	passes data in the native float format
 **     sf_xxxx_double	passes data in the native double format
-** For the double format, if the normalize flag is TRUE, the read/write 
-** operations will use floats/doubles in the rangs [-1.0 .. 1.0] to 
+** For the double format, if the normalize flag is TRUE, the read/write
+** operations will use floats/doubles in the rangs [-1.0 .. 1.0] to
 ** represent the minimum and maximum values of the waveform irrespective
 ** of the bitwidth of the input/output file.
 ** All of these read/write function return number of frames read/written.
@@ -185,7 +185,7 @@
 size_t	sf_readf_double	(SNDFILE *sndfile, double *ptr, size_t frames, int normalize) ;
 size_t	sf_writef_double(SNDFILE *sndfile, double *ptr, size_t frames, int normalize) ;
 
-/* Functions for reading and writing the data chunk in terms of items. 
+/* Functions for reading and writing the data chunk in terms of items.
 ** Otherwise similar to above.
 ** All of these read/write function return number of items read/written.
 */
@@ -208,7 +208,7 @@
 #endif	/* __cplusplus */
 
 #ifdef _WIN32
-	#pragma pack(pop,1)
+//	#pragma pack(pop,1)
 #endif
 
 #endif	/* SNDFILE_H */
--- a/common/libsndfile/src/wav.h
+++ b/common/libsndfile/src/wav.h
@@ -14,7 +14,7 @@
 	unsigned short	bitwidth ;
 } MIN_WAV_FMT ;
 
-typedef	struct 
+typedef	struct
 {	unsigned short	format ;
 	unsigned short	channels ;
 	unsigned int	samplerate ;
@@ -98,13 +98,13 @@
 {	unsigned int samples ;
 } FACT_CHUNK ;
 
-/*------------------------------------------------------------------------------------ 
+/*------------------------------------------------------------------------------------
 **	Functions defined in wav.c
 */
 
 int		wav_close	(SF_PRIVATE  *psf) ;
 
-/*------------------------------------------------------------------------------------ 
+/*------------------------------------------------------------------------------------
 **	Functions defined in wav_float.c
 */
 
@@ -116,7 +116,7 @@
 int		wav_write_i2x86f (SF_PRIVATE *psf, int *ptr, int len) ;
 int		wav_write_d2x86f (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
 
-/*------------------------------------------------------------------------------------ 
+/*------------------------------------------------------------------------------------
 **	Functions defined in wav_ima_adpcm.c
 */
 
@@ -133,7 +133,7 @@
 int		ima_write_i (SF_PRIVATE *psf, int *ptr, int len) ;
 int		ima_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
 
-/*------------------------------------------------------------------------------------ 
+/*------------------------------------------------------------------------------------
 **	Functions defined in wav_ms_adpcm.c
 */
 
@@ -151,7 +151,7 @@
 int		msadpcm_write_d (SF_PRIVATE *psf, double *ptr, int len, int normalize) ;
 
 
-/*------------------------------------------------------------------------------------ 
+/*------------------------------------------------------------------------------------
 **	Functions defined in wav_gsm610.c
 */
 
@@ -172,7 +172,7 @@
 
 
 #ifdef _WIN32
-	#pragma pack(pop,1)
+//	#pragma pack(pop,1)
 #endif
 
 #endif
--- /dev/null
+++ b/lcc/Makefile
@@ -1,0 +1,731 @@
+# Makefile for project faac
+
+
+# Edit this path to let it point to the location of the source on your HDD
+SRCDIR=d:\aac\cvsrep\faac
+
+# Edit this path to let it point to the location of your LCC installation
+LCCDIR=c:\lcc
+
+# No editing needed after this point
+
+CFLAGS=-I$(LCCDIR)\include -I$(SRCDIR)\include -I$(SRCDIR)\common\getopt -I$(SRCDIR)\common\libsndfile\win32 -I$(SRCDIR)\common\libsndfile\src  -O 
+CC=$(LCCDIR)\bin\lcc.exe
+LINKER=$(LCCDIR)\bin\lcclnk.exe
+OBJS=\
+	getopt.obj \
+	aiff.obj \
+	alaw.obj \
+	au.obj \
+	au_g72x.obj \
+	common.obj \
+	g721.obj \
+	g723_16.obj \
+	g723_24.obj \
+	g723_40.obj \
+	g72x.obj \
+	add.obj \
+	code.obj \
+	decode.obj \
+	gsm_create.obj \
+	gsm_decode.obj \
+	gsm_destroy.obj \
+	gsm_encode.obj \
+	gsm_option.obj \
+	long_term.obj \
+	lpc.obj \
+	preprocess.obj \
+	rpe.obj \
+	short_term.obj \
+	table.obj \
+	newpcm.obj \
+	paf.obj \
+	pcm.obj \
+	raw.obj \
+	sndfile.obj \
+	svx.obj \
+	ulaw.obj \
+	wav.obj \
+	wav_float.obj \
+	wav_gsm610.obj \
+	wav_ima_adpcm.obj \
+	wav_ms_adpcm.obj \
+	main.obj \
+	aacquant.obj \
+	backpred.obj \
+	bitstream.obj \
+	channels.obj \
+	fft.obj \
+	filtbank.obj \
+	frame.obj \
+	huffman.obj \
+	joint.obj \
+	ltp.obj \
+	psych.obj \
+	tns.obj \
+	util.obj
+
+LIBS=
+
+faac.exe:	$(OBJS) Makefile
+	$(LINKER)  -s -subsystem console -o $(SRCDIR)\lcc\faac.exe $(OBJS) $(LIBS)
+
+# Build GETOPT.C
+GETOPT_C=\
+	$(SRCDIR)\common\getopt\getopt.h\
+
+getopt.obj: $(GETOPT_C) $(SRCDIR)\common\getopt\getopt.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\getopt\getopt.c
+
+# Build AIFF.C
+AIFF_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+
+aiff.obj: $(AIFF_C) $(SRCDIR)\common\libsndfile\src\aiff.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\aiff.c
+
+# Build ALAW.C
+ALAW_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+
+alaw.obj: $(ALAW_C) $(SRCDIR)\common\libsndfile\src\alaw.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\alaw.c
+
+# Build AU.C
+AU_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+	$(SRCDIR)\common\libsndfile\src\au.h\
+	$(SRCDIR)\common\libsndfile\src\ulaw.h\
+	$(SRCDIR)\common\libsndfile\src\alaw.h\
+
+au.obj: $(AU_C) $(SRCDIR)\common\libsndfile\src\au.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\au.c
+
+# Build AU_G72X.C
+AU_G72X_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\au.h\
+	$(SRCDIR)\common\libsndfile\src\G72x\g72x.h\
+
+au_g72x.obj: $(AU_G72X_C) $(SRCDIR)\common\libsndfile\src\au_g72x.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\au_g72x.c
+
+# Build COMMON.C
+COMMON_C=\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+
+common.obj: $(COMMON_C) $(SRCDIR)\common\libsndfile\src\common.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\common.c
+
+# Build G721.C
+G721_C=\
+	$(SRCDIR)\common\libsndfile\src\g72x\g72x.h\
+	$(SRCDIR)\common\libsndfile\src\g72x\private.h\
+
+g721.obj: $(G721_C) $(SRCDIR)\common\libsndfile\src\g72x\g721.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\g72x\g721.c
+
+# Build G723_16.C
+G723_16_C=\
+	$(SRCDIR)\common\libsndfile\src\g72x\g72x.h\
+	$(SRCDIR)\common\libsndfile\src\g72x\private.h\
+
+g723_16.obj: $(G723_16_C) $(SRCDIR)\common\libsndfile\src\g72x\g723_16.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\g72x\g723_16.c
+
+# Build G723_24.C
+G723_24_C=\
+	$(SRCDIR)\common\libsndfile\src\g72x\g72x.h\
+	$(SRCDIR)\common\libsndfile\src\g72x\private.h\
+
+g723_24.obj: $(G723_24_C) $(SRCDIR)\common\libsndfile\src\g72x\g723_24.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\g72x\g723_24.c
+
+# Build G723_40.C
+G723_40_C=\
+	$(SRCDIR)\common\libsndfile\src\g72x\g72x.h\
+	$(SRCDIR)\common\libsndfile\src\g72x\private.h\
+
+g723_40.obj: $(G723_40_C) $(SRCDIR)\common\libsndfile\src\g72x\g723_40.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\g72x\g723_40.c
+
+# Build G72X.C
+G72X_C=\
+	$(SRCDIR)\common\libsndfile\src\g72x\g72x.h\
+	$(SRCDIR)\common\libsndfile\src\g72x\private.h\
+
+g72x.obj: $(G72X_C) $(SRCDIR)\common\libsndfile\src\g72x\g72x.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\g72x\g72x.c
+
+# Build ADD.C
+ADD_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+add.obj: $(ADD_C) $(SRCDIR)\common\libsndfile\src\gsm610\add.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\add.c
+
+# Build CODE.C
+CODE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\config.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+code.obj: $(CODE_C) $(SRCDIR)\common\libsndfile\src\gsm610\code.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\code.c
+
+# Build DECODE.C
+DECODE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+decode.obj: $(DECODE_C) $(SRCDIR)\common\libsndfile\src\gsm610\decode.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\decode.c
+
+# Build GSM_CREATE.C
+GSM_CREATE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\config.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+gsm_create.obj: $(GSM_CREATE_C) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_create.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_create.c
+
+# Build GSM_DECODE.C
+GSM_DECODE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+gsm_decode.obj: $(GSM_DECODE_C) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_decode.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_decode.c
+
+# Build GSM_DESTROY.C
+GSM_DESTROY_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\config.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+gsm_destroy.obj: $(GSM_DESTROY_C) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_destroy.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_destroy.c
+
+# Build GSM_ENCODE.C
+GSM_ENCODE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+gsm_encode.obj: $(GSM_ENCODE_C) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_encode.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_encode.c
+
+# Build GSM_OPTION.C
+GSM_OPTION_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+gsm_option.obj: $(GSM_OPTION_C) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_option.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\gsm_option.c
+
+# Build LONG_TERM.C
+LONG_TERM_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+long_term.obj: $(LONG_TERM_C) $(SRCDIR)\common\libsndfile\src\gsm610\long_term.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\long_term.c
+
+# Build LPC.C
+LPC_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+lpc.obj: $(LPC_C) $(SRCDIR)\common\libsndfile\src\gsm610\lpc.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\lpc.c
+
+# Build PREPROCESS.C
+PREPROCESS_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+preprocess.obj: $(PREPROCESS_C) $(SRCDIR)\common\libsndfile\src\gsm610\preprocess.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\preprocess.c
+
+# Build RPE.C
+RPE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+rpe.obj: $(RPE_C) $(SRCDIR)\common\libsndfile\src\gsm610\rpe.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\rpe.c
+
+# Build SHORT_TERM.C
+SHORT_TERM_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+
+short_term.obj: $(SHORT_TERM_C) $(SRCDIR)\common\libsndfile\src\gsm610\short_term.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\short_term.c
+
+# Build TABLE.C
+TABLE_C=\
+	$(SRCDIR)\common\libsndfile\src\gsm610\private.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\proto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\unproto.h\
+	$(SRCDIR)\common\libsndfile\src\gsm610\gsm.h\
+
+table.obj: $(TABLE_C) $(SRCDIR)\common\libsndfile\src\gsm610\table.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\gsm610\table.c
+
+# Build NEWPCM.C
+NEWPCM_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+
+newpcm.obj: $(NEWPCM_C) $(SRCDIR)\common\libsndfile\src\newpcm.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\newpcm.c
+
+# Build PAF.C
+PAF_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+
+paf.obj: $(PAF_C) $(SRCDIR)\common\libsndfile\src\paf.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\paf.c
+
+# Build PCM.C
+PCM_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+
+pcm.obj: $(PCM_C) $(SRCDIR)\common\libsndfile\src\pcm.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\pcm.c
+
+# Build RAW.C
+RAW_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+
+raw.obj: $(RAW_C) $(SRCDIR)\common\libsndfile\src\raw.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\raw.c
+
+# Build SNDFILE.C
+SNDFILE_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+
+sndfile.obj: $(SNDFILE_C) $(SRCDIR)\common\libsndfile\src\sndfile.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\sndfile.c
+
+# Build SVX.C
+SVX_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+
+svx.obj: $(SVX_C) $(SRCDIR)\common\libsndfile\src\svx.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\svx.c
+
+# Build ULAW.C
+ULAW_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+
+ulaw.obj: $(ULAW_C) $(SRCDIR)\common\libsndfile\src\ulaw.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\ulaw.c
+
+# Build WAV.C
+WAV_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\pcm.h\
+	$(SRCDIR)\common\libsndfile\src\ulaw.h\
+	$(SRCDIR)\common\libsndfile\src\alaw.h\
+	$(SRCDIR)\common\libsndfile\src\wav.h\
+
+wav.obj: $(WAV_C) $(SRCDIR)\common\libsndfile\src\wav.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\wav.c
+
+# Build WAV_FLOAT.C
+WAV_FLOAT_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\wav.h\
+
+wav_float.obj: $(WAV_FLOAT_C) $(SRCDIR)\common\libsndfile\src\wav_float.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\wav_float.c
+
+# Build WAV_GSM610.C
+WAV_GSM610_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\wav.h\
+	$(SRCDIR)\common\libsndfile\src\GSM610\gsm.h\
+
+wav_gsm610.obj: $(WAV_GSM610_C) $(SRCDIR)\common\libsndfile\src\wav_gsm610.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\wav_gsm610.c
+
+# Build WAV_IMA_ADPCM.C
+WAV_IMA_ADPCM_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\wav.h\
+
+wav_ima_adpcm.obj: $(WAV_IMA_ADPCM_C) $(SRCDIR)\common\libsndfile\src\wav_ima_adpcm.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\wav_ima_adpcm.c
+
+# Build WAV_MS_ADPCM.C
+WAV_MS_ADPCM_C=\
+	$(SRCDIR)\common\libsndfile\win32\unistd.h\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\sfendian.h\
+	$(SRCDIR)\common\libsndfile\win32\config.h\
+	$(SRCDIR)\common\libsndfile\src\common.h\
+	$(SRCDIR)\common\libsndfile\src\wav.h\
+
+wav_ms_adpcm.obj: $(WAV_MS_ADPCM_C) $(SRCDIR)\common\libsndfile\src\wav_ms_adpcm.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\common\libsndfile\src\wav_ms_adpcm.c
+
+# Build MAIN.C
+MAIN_C=\
+	$(SRCDIR)\common\libsndfile\src\sndfile.h\
+	$(SRCDIR)\common\getopt\getopt.h\
+	$(SRCDIR)\include\faac.h\
+
+main.obj: $(MAIN_C) $(SRCDIR)\frontend\main.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\frontend\main.c
+
+# Build AACQUANT.C
+AACQUANT_C=\
+	$(SRCDIR)\libfaac\aacquant.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\huffman.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\util.h\
+
+aacquant.obj: $(AACQUANT_C) $(SRCDIR)\libfaac\aacquant.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\aacquant.c
+
+# Build BACKPRED.C
+BACKPRED_C=\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\backpred.h\
+
+backpred.obj: $(BACKPRED_C) $(SRCDIR)\libfaac\backpred.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\backpred.c
+
+# Build BITSTREAM.C
+BITSTREAM_C=\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\huffman.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\ltp.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\util.h\
+
+bitstream.obj: $(BITSTREAM_C) $(SRCDIR)\libfaac\bitstream.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\bitstream.c
+
+# Build CHANNELS.C
+CHANNELS_C=\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\util.h\
+
+channels.obj: $(CHANNELS_C) $(SRCDIR)\libfaac\channels.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\channels.c
+
+# Build FFT.C
+FFT_C=\
+	$(SRCDIR)\libfaac\fft.h\
+	$(SRCDIR)\libfaac\util.h\
+
+fft.obj: $(FFT_C) $(SRCDIR)\libfaac\fft.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\fft.c
+
+# Build FILTBANK.C
+FILTBANK_C=\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\filtbank.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\fft.h\
+	$(SRCDIR)\libfaac\util.h\
+
+filtbank.obj: $(FILTBANK_C) $(SRCDIR)\libfaac\filtbank.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\filtbank.c
+
+# Build FRAME.C
+FRAME_C=\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\joint.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\filtbank.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\aacquant.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\util.h\
+	$(SRCDIR)\libfaac\huffman.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\tns.h\
+	$(SRCDIR)\libfaac\ltp.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\backpred.h\
+
+frame.obj: $(FRAME_C) $(SRCDIR)\libfaac\frame.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\frame.c
+
+# Build HUFFMAN.C
+HUFFMAN_C=\
+	$(SRCDIR)\libfaac\huffman.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\util.h\
+	$(SRCDIR)\libfaac\hufftab.h\
+
+huffman.obj: $(HUFFMAN_C) $(SRCDIR)\libfaac\huffman.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\huffman.c
+
+# Build JOINT.C
+JOINT_C=\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\util.h\
+
+joint.obj: $(JOINT_C) $(SRCDIR)\libfaac\joint.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\joint.c
+
+# Build LTP.C
+LTP_C=\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\ltp.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\tns.h\
+	$(SRCDIR)\libfaac\filtbank.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\util.h\
+
+ltp.obj: $(LTP_C) $(SRCDIR)\libfaac\ltp.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\ltp.c
+
+# Build PSYCH.C
+PSYCH_C=\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\fft.h\
+	$(SRCDIR)\libfaac\util.h\
+
+psych.obj: $(PSYCH_C) $(SRCDIR)\libfaac\psych.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\psych.c
+
+# Build TNS.C
+TNS_C=\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\psych.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\bitstream.h\
+	$(SRCDIR)\libfaac\frame.h\
+	$(SRCDIR)\libfaac\coder.h\
+	$(SRCDIR)\libfaac\channels.h\
+	$(SRCDIR)\libfaac\tns.h\
+	$(SRCDIR)\libfaac\util.h\
+
+tns.obj: $(TNS_C) $(SRCDIR)\libfaac\tns.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\tns.c
+
+# Build UTIL.C
+UTIL_C=\
+	$(SRCDIR)\libfaac\util.h\
+
+util.obj: $(UTIL_C) $(SRCDIR)\libfaac\util.c
+	$(CC) -c $(CFLAGS) $(SRCDIR)\libfaac\util.c
+
+link:
+	$(LINKER)  -s -subsystem console -o $(SRCDIR)\lcc\faac.exe $(OBJS) $(LIBS)
+