📄 makefile.unix
字号:
LIBS =ifeq ($(ARCH),BePC) CC_OPTS = -O9 -fomit-frame-pointer -march=pentium \ -mcpu=pentium -ffast-math -funroll-loops \ -fprofile-arcs -fbranch-probabilitieselse CC_OPTS = -opt all MAKEDEP = -makeendifendif############################################################################ 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 = -DBRHIST -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 -lmendif############################################################################ 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.exeendif############################################################################ 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 = endifendif# 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 = elseCC_SWITCHES = -D__NO_MATH_INLINES # only needed by some older glibcendifCC_SWITCHES += -DNDEBUG $(CC_OPTS) $(SNDLIB) $(GTK) $(BRHIST_SWITCH)frontend_sources = \ frontend/amiga_mpega.c \ frontend/brhist.c \ frontend/get_audio.c \ frontend/lametime.c \ frontend/parse.c \ frontend/portableio.c \ frontend/timestatus.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 \ 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))#endiffrontend_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.cgtk_obj = $(gtk_sources:.c=.o)gtk_dep = $(gtk_sources:.c=.d)NASM = nasmASFLAGS=-f elf -i libmp3lame/i386/# for people with nasmwifeq ($(UNAME),MSDOS) NASM = nasmw ASFLAGS=-f win32 -DWIN32 -i libmp3lame/i386/endif%.o: %.nas $(NASM) $(ASFLAGS) $< -o $@%.o: %.s gcc -c $< -o $@#HAVE_NASM = YESifeq ($(HAVE_NASM),YES)## have NASMCC_SWITCHES += -DHAVE_NASMlib_obj += libmp3lame/i386/cpu_feat.o## use MMX extension. you need nasm and MMX supported CPU.CC_SWITCHES += -DMMX_choose_tablelib_obj += libmp3lame/i386/choose_table.o## use 3DNow! extension. you need nasm and 3DNow! supported CPU.lib_obj += libmp3lame/i386/fft3dn.o## not yet coded#CC_SWITCHES += -DUSE_FFTSSE#lib_obj += libmp3lame/i386/fftsse.o## not yet coded#CC_SWITCHES += -DUSE_FFTFPU#lib_obj += libmp3lame/i386/fftfpu.oendif%.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'\'' > $@' endifall: frontend/$(PGM)$(lib_sources) $(frontend_sources) $(gtk_sources) : config.hconfig.h: configMS.h ifeq ($(NOUNIXCMD),YES) copy configMS.h config.h else cp configMS.h config.h endiffrontend/$(PGM): frontend/main.o $(frontend_obj) $(MP3LIB) $(CC) $(CC_OPTS) -o frontend/$(PGM) frontend/main.o $(frontend_obj) \ $(MP3LIB) $(LIBS) $(LIBSNDFILE) $(LIBTERMCAP)mp3x: frontend/mp3x.o $(frontend_obj) $(gtk_obj) $(MP3LIB) $(CC) $(CC_OPTS) -o frontend/mp3x frontend/mp3x.o $(frontend_obj) $(gtk_obj) $(MP3LIB) \ $(LIBS) $(LIBSNDFILE) $(GTKLIBS) $(LIBTERMCAP)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) $(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/libclean: 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 endiftags: TAGSTAGS: ${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 compilier 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 -h testcase.wav testcase.new.mp3 cmp -l testcase.new.mp3 testcase.mp3 | wc -ltestg: frontend/$(PGM) frontend/$(PGM) -g -h ../test/castanets.wav
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -