| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668 |
- # Makefile for LAME 3.xx -*- makefile -*-
- #
- # LAME is reported to work under:
- # Linux (i86), NetBSD 1.3.2 (StrongARM), FreeBSD (i86)
- # Compaq Alpha(OSF, Linux, Tru64 Unix), Sun Solaris, SGI IRIX,
- # OS2 Warp, Macintosh PPC, BeOS, Amiga and even VC++
- #
- # these variables are available on command line:
- #
- # make UNAME=xxxxx ARCH=xxxxx - specify a type of host
- # make PGM=lame_exp - specify a name of an executable file
- #
- # if you have mingw32-gcc, try:
- # make -fMakefile.unix UNAME=MSDOS
- # or if you get the error
- # "process_begin: CreateProcess((null), copy configMS.h config.h, ...)":
- # make -fMakefile.unix UNAME=MSDOS NOUNIXCMD=NO
- # or if you have NASM:
- # make -fMakefile.unix UNAME=MSDOS HAVE_NASM=YES
- #
- ifeq ($(UNAME),MSDOS)
- UNAME ?= UNKNOWN
- ARCH = x86
- NOUNIXCMD = YES
- else
- UNAME = $(shell uname)
- ARCH = $(shell uname -m)
- iARCH = $(patsubst i%86,x86,$(ARCH))
- endif
- HAVE_NASM = NO
- HAVE_NEWER_GLIBC = NO
- NASM_FLAGS=elf
- # generic defaults. OS specific options go in versious sections below
- PGM = lame
- CC = gcc
- CC_OPTS = -O
- CPP_OPTS = -Iinclude -Impglib -Ifrontend -Ilibmp3lame
- AR = ar
- RANLIB = ranlib
- GTK =
- GTKLIBS =
- LIBSNDFILE =
- LIBS = -lm
- MP3LIB = libmp3lame/libmp3lame.a
- MP3LIB_SHARED = libmp3lame/libmp3lame.so
- MAKEDEP = -M
- BRHIST_SWITCH =
- LIBTERMCAP =
- RM = rm -f
- CPP_OPTS += -DHAVE_CONFIG_H -I.
- ##########################################################################
- # -DHAVEMPGLIB compiles the mpglib *decoding* library into libmp3lame
- ##########################################################################
- CPP_OPTS += -DHAVE_MPGLIB
- ##########################################################################
- # -DTAKEHIRO_IEEE754_HACK enables Takehiro's IEEE hack
- ##########################################################################
- ifeq ($(iARCH),x86)
- ifeq ($(CFG),RH_SSE)
- # SSE and IEEE754 HACK don't work together
- else
- CPP_OPTS += -DTAKEHIRO_IEEE754_HACK
- endif
- endif
- ##########################################################################
- # Define these in the OS specific sections below to compile in code
- # for the optional VBR bitrate histogram.
- # Requires ncurses, but libtermcap also works.
- # If you have any trouble, just dont define these
- #
- # BRHIST_SWITCH = -DBRHIST -DHAVE_TERMCAP -DHAVE_{NCURSES_}TERMCAP_H
- # LIBTERMCAP = -lncurses
- # LIBTERMCAP = -ltermcap
- #
- # or, to try and simulate TERMCAP (ANSI), use:
- # BRHIST_SWITCH = -DBRHIST
- #
- ##########################################################################
- ##########################################################################
- # Define these in the OS specific sections below to compile in code for:
- #
- # SNDLIB = -DLIBSNDFILE to use Erik de Castro Lopo's libsndfile
- # http://www.zip.com.au/~erikd/libsndfile/ instead of LAME's internal
- # routines. Also set:
- #
- # LIBSNDFILE = -lsndfile
- # or
- # LIBSNDFILE = -L/location_of_libsndfile -lsndfile
- #
- ##########################################################################
- ##########################################################################
- # Define these in the OS specific sections below to compile in code for
- # the GTK mp3 frame analyzer
- #
- # Requires -DHAVE_MPGLIB
- #
- # GTK = -DHAVE_GTK `gtk-config --cflags`
- # GTKLIBS = `gtk-config --libs`
- #
- ##########################################################################
- ##########################################################################
- # LINUX
- ##########################################################################
- ifeq ($(UNAME),Linux)
- # The frame analyzer depends on gtk1.2. Uncomment the next 2 lines to get it
- # GTK = -DHAVE_GTK `gtk-config --cflags`
- # GTKLIBS = `gtk-config --libs`
- # Comment out next 2 lines if you want to remove VBR histogram capability
- BRHIST_SWITCH = -DHAVE_TERMCAP -DHAVE_TERMCAP_H
- LIBTERMCAP = -lncurses
- # uncomment to use LIBSNDFILE
- # SNDLIB = -DLIBSNDFILE
- # LIBSNDFILE=-lsndfile
- # suggested for gcc-2.7.x
- # CC_OPTS = -O3 -fomit-frame-pointer -funroll-loops -ffast-math -finline-functions -Wall -pedantic
- # CC_OPTS = -O9 -fomit-frame-pointer -fno-strength-reduce -mpentiumpro -ffast-math -finline-functions -funroll-loops -Wall -malign-double -g -march=pentiumpro -mfancy-math-387 -pipe -pedantic
- # Suggested for GCC 4.* & machines with sse+sse2+sse3: -Os might reduce
- # the use of the instruction cache and, thus, get better performance,
- # but this should be experimented by the user. Customize at your own
- # convenience.
- #
- #CC_OPTS = -pipe -O3 \
- # -Wall -Wextra -pedantic \
- # -Wmissing-declarations -Wfloat-equal -Wshadow \
- # -Wcast-qual -Wcast-align -Wdisabled-optimization \
- # -ffast-math -ftree-vectorize -ftree-vect-loop-version \
- # -mtune=nocona -march=nocona -mfpmath=sse -msse -msse2 -msse3 \
- # -malign-double -maccumulate-outgoing-args
- # for debugging:
- CC_OPTS = -UNDEBUG -O -Wall -pedantic -ggdb -DABORTFP
- # for lots of debugging:
- # CC_OPTS = -DDEBUG -UNDEBUG -O -Wall -pedantic -g -DABORTFP
- ifeq ($(CFG),RH)
- GTK = -DHAVE_GTK `gtk-config --cflags`
- GTKLIBS = `gtk-config --libs`
- CPP_OPTS += -DFLOAT8=float -DREAL_IS_FLOAT=1 -DHAVE_ICONV -DHAVE_XMMINTRIN_H -D_ALLOW_INTERNAL_OPTIONS
- # these options for gcc-3.2 & AthlonXP
- CC_OPTS = \
- -pipe -O3 \
- -Wall -W -Wmissing-declarations -Wfloat-equal -Wformat \
- -Wcast-qual -Wcast-align -Wdisabled-optimization -Wshadow \
- -march=athlon-xp \
- -malign-double \
- -maccumulate-outgoing-args
- # -Wconversion -Wunreachable-code \
- HAVE_NEWER_GLIBC = YES
- HAVE_NASM = YES
- endif
- ifeq ($(CFG),RH_SSE)
- GTK = -DHAVE_GTK `gtk-config --cflags`
- GTKLIBS = `gtk-config --libs`
- CPP_OPTS += -DFLOAT8=float -DREAL_IS_FLOAT=1 -DHAVE_ICONV -DHAVE_XMMINTRIN_H -DMIN_ARCH_SSE -D_ALLOW_INTERNAL_OPTIONS
- # these options for gcc-3.2 & AthlonXP
- CC_OPTS = \
- -std=c99 -pipe -O3 -fstrict-aliasing \
- -Wall -W -Wmissing-declarations -Wfloat-equal -Wformat \
- -Wcast-qual -Wcast-align -Wdisabled-optimization -Wshadow \
- -Wunsafe-loop-optimizations \
- -march=k8 \
- -ffast-math \
- -mfpmath=sse -msse -msse2 \
- -malign-double \
- -funsafe-math-optimizations \
- -funsafe-loop-optimizations \
- -maccumulate-outgoing-args
- # -Dpowf=pow -Dfabsf=fabs -Dlog10f=log10
- # -fsingle-precision-constant \
- # -Wconversion -Wunreachable-code \
- # -ftree-vectorizer-verbose=10 \
- HAVE_NEWER_GLIBC = YES
- # HAVE_NASM = YES
- NASM_FLAGS = elf64
- endif
- ifeq ($(CFG),RH_INTEL)
- CC=icc
- GTK = -DHAVE_GTK `gtk-config --cflags`
- GTKLIBS = `gtk-config --libs`
- CPP_OPTS += -DFLOAT8=float -DREAL_IS_FLOAT=1 -DHAVE_ICONV -DHAVE_XMMINTRIN_H -DMIN_ARCH_SSE -D_ALLOW_INTERNAL_OPTIONS
- CC_OPTS = \
- -cxxlib-nostd \
- -O3 -fno-alias -ip -finline-limit=400 \
- -scalar-rep
- # -vec_report5 -opt-report
- # -parallel
- endif
- ifeq ($(CFG),PFK)
- CPP_OPTS += -DKLEMM -DKLEMM_00 -DKLEMM_01 -DKLEMM_02 -DKLEMM_03 -DKLEMM_04 -DKLEMM_05 -DKLEMM_06 -DKLEMM_07 -DKLEMM_08 -DKLEMM_09 -DKLEMM_10 -DKLEMM_11 -DKLEMM_12 -DKLEMM_13 -DKLEMM_14 -DKLEMM_15 -DKLEMM_16 -DKLEMM_17 -DKLEMM_18 -DKLEMM_19 -DKLEMM_20 -DKLEMM_21 -DKLEMM_22 -DKLEMM_23 -DKLEMM_24 -DKLEMM_25 -DKLEMM_26 -DKLEMM_27 -DKLEMM_28 -DKLEMM_29 -DKLEMM_30 -DKLEMM_31 -DKLEMM_32 -DKLEMM_33 -DKLEMM_34 -DKLEMM_35 -DKLEMM_36 -DKLEMM_37 -DKLEMM_38 -DKLEMM_39 -DKLEMM_40 -DKLEMM_41 -DKLEMM_42 -DKLEMM_43 -DKLEMM_44 -DKLEMM_45 -DKLEMM_46 -DKLEMM_47 -DKLEMM_48 -DKLEMM_49 -DKLEMM_50
- CC_OPTS = \
- -Wall -O9 -fomit-frame-pointer -march=pentium \
- -finline-functions -fexpensive-optimizations \
- -funroll-loops -funroll-all-loops -pipe -fschedule-insns2 \
- -fstrength-reduce \
- -malign-double -mfancy-math-387 -ffast-math
- HAVE_NEWER_GLIBC = YES
- HAVE_NASM = YES
- endif
- ##########################################################################
- # LINUX on Digital/Compaq Alpha CPUs
- ##########################################################################
- ifeq ($(ARCH),alpha)
- ################################################################
- #### Check if 'ccc' is in our path
- #### if not, use 'gcc'
- ################################################################
- ifeq ($(shell which ccc 2>/dev/null | grep -c ccc),0)
- # double is faster than float on Alpha
- CC_OPTS = -O4 -pedantic -Wall -fomit-frame-pointer -ffast-math -funroll-loops \
- -mfp-regs -fschedule-insns -fschedule-insns2 \
- -finline-functions \
- # -DFLOAT=double
- # add "-mcpu=21164a -Wa,-m21164a" to optimize for 21164a (ev56) CPU
- ################################################################
- #### else, use 'ccc'
- ################################################################
- else
- # Compaq's C Compiler
- CC = ccc
- ################################################################
- #### set 'CC_OPTS = -arch host -tune host' to generate/tune instructions for this machine
- #### 'CC_OPTS += -migrate -fast -inline speed -unroll 0' tweak to run as fast as possible :)
- #### 'CC_OPTS += -w0 -pedantic -Wall' set warning and linking flags
- ################################################################
- CC_OPTS = -arch host -tune host
- CC_OPTS += -migrate -fast -inline speed -unroll 0
- CC_OPTS += -w0 -pedantic -Wall
- ################################################################
- #### to debug, uncomment
- ################################################################
- # For Debugging
- #CC_OPTS += -g3
- ################################################################
- #### define __DECALPHA__ (i was getting re-declaration warnings
- #### in machine.h
- ################################################################
- # Define DEC Alpha
- CPP_OPTS += -D__DECALPHA__
- # standard Linux libm
- #LIBS = -lm
- # optimized libffm (free fast math library)
- #LIBS = -lffm
- # Compaq's fast math library
- LIBS = -lcpml
- endif # gcc or ccc?
- endif # alpha
- endif # linux
- ##########################################################################
- # FreeBSD
- ##########################################################################
- ifeq ($(UNAME),FreeBSD)
- # remove if you do not have GTK or do not want the GTK frame analyzer
- GTK = -DHAVE_GTK `gtk12-config --cflags`
- GTKLIBS = `gtk12-config --libs`
- # Comment out next 2 lines if you want to remove VBR histogram capability
- BRHIST_SWITCH = -DHAVE_TERMCAP -DHAVE_TERMCAP_H
- LIBTERMCAP = -lncurses
- endif
- ##########################################################################
- # OpenBSD
- ##########################################################################
- ifeq ($(UNAME),OpenBSD)
- # remove if you do not have GTK or do not want the GTK frame analyzer
- GTK = -DHAVE_GTK `gtk-config --cflags`
- GTKLIBS = `gtk-config --libs`
- # Comment out next 2 lines if you want to remove VBR histogram capability
- BRHIST_SWITCH = -DHAVE_TERMCAP -DHAVE_TERMCAP_H
- LIBTERMCAP = -lcurses
- endif
- ##########################################################################
- # SunOS
- ##########################################################################
- ifeq ($(UNAME),SunOS)
- CC = cc
- CC_OPTS = -O -xCC
- MAKEDEP = -xM
- # for gcc, use instead:
- # CC = gcc
- # CC_OPTS = -O
- # MAKEDEP = -M
- endif
- ##########################################################################
- # SGI
- ##########################################################################
- ifeq ($(UNAME),IRIX64)
- CC = cc
- CC_OPTS = -O3 -woff all
- #optonal:
- # GTK = -DHAVE_GTK `gtk-config --cflags`
- # GTKLIBS = `gtk-config --libs`
- # BRHIST_SWITCH = -DBRHIST -DHAVE_TERMCAP -DHAVE_TERMCAP_H
- # LIBTERMCAP = -lncurses
- endif
- ifeq ($(UNAME),IRIX)
- CC = cc
- CC_OPTS = -O3 -woff all
- endif
- ##########################################################################
- # Compaq Alpha running Dec Unix (OSF)
- ##########################################################################
- ifeq ($(UNAME),OSF1)
- CC = cc
- CC_OPTS = -fast -O3 -std -g3 -non_shared
- endif
- ##########################################################################
- # BeOS
- ##########################################################################
- ifeq ($(UNAME),BeOS)
- CC = $(BE_C_COMPILER)
- LIBS =
- ifeq ($(ARCH),BePC)
- CC_OPTS = -O9 -fomit-frame-pointer -march=pentium \
- -mcpu=pentium -ffast-math -funroll-loops \
- -fprofile-arcs -fbranch-probabilities
- else
- CC_OPTS = -opt all
- MAKEDEP = -make
- endif
- endif
- ###########################################################################
- # MOSXS (Rhapsody PPC)
- ###########################################################################
- ifeq ($(UNAME),Rhapsody)
- CC = cc
- LIBS =
- CC_OPTS = -O9 -ffast-math -funroll-loops -fomit-frame-pointer
- MAKEDEP = -make
- endif
- ##########################################################################
- # OS/2
- ##########################################################################
- # Properly installed EMX runtime & development package is a prerequisite.
- # tools I used: make 3.76.1, uname 1.12, sed 2.05, PD-ksh 5.2.13
- #
- ##########################################################################
- ifeq ($(UNAME),OS/2)
- SHELL=sh
- CC = gcc
- CC_OPTS = -O3 -D__OS2__
- PGM = lame.exe
- LIBS =
- RANLIB = touch
- # I use the following for slightly better performance on my Pentium-II
- # using pgcc-2.91.66:
- # CC_OPTS = -O6 -ffast-math -funroll-loops -mpentiumpro -march=pentiumpro -D__OS2__
- # for the unfortunates with a regular pentium (using pgcc):
- # CC_OPTS = -O6 -ffast-math -funroll-loops -mpentium -march=pentium -D__OS2__
- # Comment out next 2 lines if you want to remove VBR histogram capability
- BRHIST_SWITCH = -DHAVE_TERMCAP -DHAVE_{NCURSES_}TERMCAP_H
- LIBTERMCAP = -lncurses
- # Uncomment & inspect the 2 GTK lines to use MP3x GTK frame analyzer.
- # Properly installed XFree86/devlibs & GTK+ is a prerequisite.
- # The following works for me using Xfree86/OS2 3.3.5 and GTK+ 1.2.3:
- # GTK = -DHAVE_GTK -IC:/XFree86/include/gtk12 -Zmt -D__ST_MT_ERRNO__ -IC:/XFree86/include/glib12 -IC:/XFree86/include
- # GTKLIBS = -LC:/XFree86/lib -Zmtd -Zsysv-signals -Zbin-files -lgtk12 -lgdk12 -lgmodule -lglib12 -lXext -lX11 -lshm -lbsd -lsocket -lm
- endif
- ###########################################################################
- # MSDOS/Windows
- ###########################################################################
- ifeq ($(UNAME),MSDOS)
- RM =
- CC_OPTS = \
- -Wall -pipe -O3 -fomit-frame-pointer -ffast-math -funroll-loops \
- -fschedule-insns2 -fmove-all-movables -freduce-all-givs \
- -mcpu=pentium -march=pentium -mfancy-math-387
- CC_OPTS += -D_cdecl=__cdecl
- PGM = lame.exe
- endif
- ###########################################################################
- # AmigaOS
- ###########################################################################
- # Type 'Make ARCH=PPC' for PowerUP and 'Make ARCH=WOS' for WarpOS
- #
- ###########################################################################
- ifeq ($(UNAME),AmigaOS)
- CC = gcc -noixemul
- CC_OPTS = -O3 -ffast-math -funroll-loops -m68020-60 -m68881
- BRHIST_SWITCH = -DBRHIST
- MAKEDEP = -MM
- ifeq ($(ARCH),WOS)
- CC = ppc-amigaos-gcc -warpup
- CC_OPTS = -O3 -ffast-math -fomit-frame-pointer -funroll-loops \
- -mmultiple -mcpu=603e
- AR = ppc-amigaos-ar
- RANLIB = ppc-amigaos-ranlib
- LIBS =
- endif
- ifeq ($(ARCH),PPC)
- CC = ppc-amigaos-gcc
- CC_OPTS = -O3 -ffast-math -fomit-frame-pointer -funroll-loops \
- -mmultiple -mcpu=603e
- AR = ppc-amigaos-ar
- RANLIB = ppc-amigaos-ranlib
- LIBS =
- endif
- endif
- # 10/99 added -D__NO_MATH_INLINES to fix a bug in *all* versions of
- # gcc 2.8+ as of 10/99.
- ifeq ($(HAVE_NEWER_GLIBC),YES)
- CC_SWITCHES =
- else
- CC_SWITCHES = -D__NO_MATH_INLINES # only needed by some older glibc
- endif
- # temporary remove NDEBUG, see configure.in
- #CC_SWITCHES += -DNDEBUG $(CC_OPTS) $(SNDLIB) $(BRHIST_SWITCH)
- CC_SWITCHES += $(CC_OPTS) $(SNDLIB) $(BRHIST_SWITCH)
- frontend_sources = \
- frontend/main.c \
- frontend/amiga_mpega.c \
- frontend/brhist.c \
- frontend/get_audio.c \
- frontend/lametime.c \
- frontend/parse.c \
- frontend/timestatus.c \
- frontend/console.c \
- lib_sources = \
- libmp3lame/bitstream.c \
- libmp3lame/encoder.c \
- libmp3lame/fft.c \
- libmp3lame/gain_analysis.c \
- libmp3lame/id3tag.c \
- libmp3lame/lame.c \
- libmp3lame/newmdct.c \
- libmp3lame/psymodel.c \
- libmp3lame/quantize.c \
- libmp3lame/quantize_pvt.c \
- libmp3lame/set_get.c \
- libmp3lame/vbrquantize.c \
- libmp3lame/reservoir.c \
- libmp3lame/tables.c \
- libmp3lame/takehiro.c \
- libmp3lame/util.c \
- libmp3lame/mpglib_interface.c \
- libmp3lame/VbrTag.c \
- libmp3lame/version.c \
- libmp3lame/presets.c \
- libmp3lame/vector/xmm_quantize_sub.c \
- mpglib/common.c \
- mpglib/dct64_i386.c \
- mpglib/decode_i386.c \
- mpglib/layer1.c \
- mpglib/layer2.c \
- mpglib/layer3.c \
- mpglib/tabinit.c \
- mpglib/interface.c
- #ifeq ($(UNAME),MSDOS)
- # frontend_sources := $(subst /,\,$(frontend_sources))
- # lib_sources := $(subst /,\,$(lib_sources))
- #endif
- frontend_obj = $(frontend_sources:.c=.o)
- lib_obj = $(lib_sources:.c=.o)
- DEP = $(frontend_sources:.c=.d) $(lib_sources:.c=.d )
- gtk_sources = frontend/gtkanal.c frontend/gpkplotting.c frontend/mp3x.c
- gtk_obj = $(gtk_sources:.c=.gtk.o)
- gtk_dep = $(gtk_sources:.c=.d)
- NASM = nasm
- ASFLAGS=-f $(NASM_FLAGS) -i libmp3lame/i386/
- # for people with nasmw
- ifeq ($(UNAME),MSDOS)
- NASM = nasmw
- ASFLAGS=-f win32 -DWIN32 -i libmp3lame/i386/
- endif
- %.o: %.nas
- $(NASM) $(ASFLAGS) $< -o $@
- %.o: %.s
- gcc -c $< -o $@
- #HAVE_NASM = YES
- ifeq ($(HAVE_NASM),YES)
- ## have NASM
- CC_SWITCHES += -DHAVE_NASM
- lib_obj += libmp3lame/i386/cpu_feat.o
- ## use MMX extension. you need nasm and MMX supported CPU.
- CC_SWITCHES += -DMMX_choose_table
- lib_obj += libmp3lame/i386/choose_table.o
- ## use 3DNow! extension. you need nasm and 3DNow! supported CPU.
- lib_obj += libmp3lame/i386/fft3dn.o
- ## use SSE extension. you need nasm and SSE supported CPU.
- lib_obj += libmp3lame/i386/fftsse.o
- ## not yet coded
- #CC_SWITCHES += -DUSE_FFTFPU
- #lib_obj += libmp3lame/i386/fftfpu.o
- endif
- #
- # Makefile rules---you probably won't have to modify below this line
- #
- %.o: %.c
- $(CC) $(CPP_OPTS) $(CC_SWITCHES) -c $< -o $@
- %.d: %.c
- ifeq ($(NOUNIXCMD),YES)
- $(CC) $(MAKEDEP) $(CPP_OPTS) $(CC_SWITCHES) $< > $@
- else
- $(SHELL) -ec '$(CC) $(MAKEDEP) $(CPP_OPTS) $(CC_SWITCHES) $< | sed '\''s;$*.o;& $@;g'\'' > $@'
- endif
- %.gtk.o: %.c
- $(CC) $(CPP_OPTS) $(CC_SWITCHES) $(GTK) -c $< -o $@
- all: frontend/$(PGM)
- $(lib_sources) $(frontend_sources) $(gtk_sources) : config.h
- config.h: configMS.h
- ifeq ($(NOUNIXCMD),YES)
- copy configMS.h config.h
- else
- cp configMS.h config.h
- endif
- frontend/$(PGM): frontend/lame_main.o $(frontend_obj) $(MP3LIB)
- $(CC) $(CC_OPTS) -o frontend/$(PGM) frontend/lame_main.o $(frontend_obj) \
- $(MP3LIB) $(LIBS) $(LIBSNDFILE) $(LIBTERMCAP)
- mp3x: $(frontend_obj) $(gtk_obj) $(MP3LIB)
- $(CC) $(CC_OPTS) -o frontend/mp3x $(frontend_obj) $(gtk_obj) \
- $(MP3LIB) $(LIBS) $(LIBSNDFILE) $(LIBTERMCAP) $(GTKLIBS)
- mp3rtp: frontend/rtp.o frontend/mp3rtp.o $(frontend_obj) $(MP3LIB)
- $(CC) $(CC_OPTS) -o frontend/mp3rtp frontend/mp3rtp.o frontend/rtp.o $(frontend_obj) $(MP3LIB) \
- $(LIBS) $(LIBSNDFILE) $(LIBTERMCAP)
- libmp3lame/libmp3lame.a: $(lib_obj)
- echo $(lib_obj)
- $(AR) cr libmp3lame/libmp3lame.a $(lib_obj)
- $(RANLIB) libmp3lame/libmp3lame.a
- #shared library. GNU specific?
- libmp3lame/libmp3lame.so: $(lib_obj)
- gcc -shared -Wl,-soname,libmp3lame/libmp3lame.so -o libmp3lame/libmp3lame.so $(lib_obj)
- install: frontend/$(PGM) #libmp3lame.a
- cp frontend/$(PGM) /usr/bin
- #cp libmp3lame.a /usr/lib
- #cp lame.h /usr/lib
- clean:
- ifeq ($(UNAME),MSDOS)
- -del $(subst /,\,$(frontend_obj))
- -del $(subst /,\,$(lib_obj))
- -del $(subst /,\,$(gtk_obj))
- -del $(subst /,\,$(DEP))
- -del frontend\$(PGM)
- -del frontend\main.o
- -del libmp3lame\libmp3lame.a
- else
- -$(RM) $(gtk_obj) $(frontend_obj) $(lib_obj) $(DEP) frontend/$(PGM) \
- frontend/main.o frontend/lame libmp3lame/libmp3lame.a \
- frontend/mp3x.o frontend/mp3x
- endif
- tags: TAGS
- TAGS: ${c_sources}
- etags -T ${c_sources}
- ifneq ($(MAKECMDGOALS),clean)
- -include $(DEP)
- endif
- #
- # testcase.mp3 is a 2926 byte file. The first number output by
- # wc is the number of bytes which differ between new output
- # and 'official' results.
- #
- # Because of compiler options and effects of roundoff, the
- # number of bytes which are different may not be zero, but
- # should be at most 30.
- #
- test: frontend/$(PGM)
- frontend/$(PGM) --nores testcase.wav testcase.new.mp3
- cmp -l testcase.new.mp3 testcase.mp3 | wc -l
|