Makefile 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. CROSS ?= arm-linux-gnueabi-
  2. CC = $(CROSS)gcc
  3. AS = $(CROSS)as
  4. AR = $(CROSS)ar
  5. TOOLCHAIN = $(notdir $(CROSS))
  6. LIBGCC ?= ${HOME}/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib/gcc/arm-open2x-linux/4.1.1/libgcc.a
  7. CFLAGS += -Ipub -O2 -Wall -fstrict-aliasing -ffast-math
  8. ifneq ($(findstring arm-,$(TOOLCHAIN)),)
  9. CFLAGS += -mcpu=arm940t -mtune=arm940t -mfloat-abi=soft -mfpu=fpa -mabi=apcs-gnu -mno-thumb-interwork
  10. ASFLAGS = -mcpu=arm940t -mfloat-abi=soft -mfpu=fpa -mabi=apcs-gnu
  11. OBJS += real/arm/asmpoly_gcc.o
  12. else
  13. CFLAGS += -m32
  14. ASFLAGS += -m32
  15. OBJS += real/polyphase.o
  16. endif
  17. LIB = $(TOOLCHAIN)helix_mp3.a
  18. SHLIB = $(TOOLCHAIN)helix_mp3.so
  19. all: $(LIB) $(SHLIB)
  20. OBJS += mp3dec.o mp3tabs.o
  21. #OBJS += ipp/bitstream.o ipp/buffers.o ipp/dequant.o ipp/huffman.o ipp/imdct.o ipp/subband.o
  22. OBJS += real/bitstream.o real/buffers.o real/dct32.o real/dequant.o real/dqchan.o real/huffman.o
  23. OBJS += real/hufftabs.o real/imdct.o real/scalfact.o real/stproc.o real/subband.o real/trigtabs.o
  24. OBJS += lib.o
  25. real/arm/asmpoly_gcc.o: real/arm/asmpoly_gcc.s
  26. $(CC) -o $@ $(ASFLAGS) -c $<
  27. $(LIB) : $(OBJS)
  28. $(AR) r $@ $^
  29. $(SHLIB) : $(OBJS) $(LIBGCC)
  30. $(CC) -o $@ -nostdlib -shared $(CFLAGS) $^
  31. clean:
  32. $(RM) -f $(OBJS)