# Copyright (C) Information Equipment co.,LTD
# All rights reserved.
# Code by JaeHyuk Cho <mailto:minzkn@infoeq.com>

HOST_ARCH                    ?= $(shell uname -m | sed \
                                  -e s/i.86/i386/ -e s/sun4u/sparc64/ \
                                  -e s/arm.*/arm/ -e s/sa110/arm/ \
                                  -e s/s390x/s390/ -e s/parisc64/parisc/ )# auto detected architecture

TARGET_ARCH                  ?= $(HOST_ARCH)#				  

CROSS_COMPILE                ?=#

CC                           := $(CROSS_COMPILE)gcc#
LD                           := $(CROSS_COMPILE)ld#
AR                           := $(CROSS_COMPILE)ar#
RM                           := rm -f#
STRIP                        := $(CROSS_COMPILE)strip#

THIS_NAME                    := mzmp3#

CFLAGS                       := -Os -pipe -Wall -Werror -ansi -fomit-frame-pointer -fPIC -I.#

LDFLAGS                      := -s#
LDFLAGS_SHARED               := -lm#
LDFLAGS_EXEC                 := -lm -lpthread#
ARFLAGS                      := rc#
STRIPFLAGS                   := --remove-section=.comment --remove-section=.note#

TARGET_lib                   := lib$(THIS_NAME).lo lib$(THIS_NAME).a lib$(THIS_NAME).so#
TARGET_bin_mzmp3             := $(THIS_NAME)#
TARGET_bin_pmp3              := pmp3#
TARGET                       := $(TARGET_lib) $(TARGET_bin_mzmp3) $(TARGET_bin_pmp3)#

CFLAGS_i386                  := -DDEF_I386=586# 
CFLAGS_$(TARGET_ARCH)        ?=#
CFLAGS                       += $(CFLAGS_$(TARGET_ARCH))#

OBJECTS_lib_i386             := getbits.o interface.o layer3.o mp3_ext.o decode_i586.o dct64_i386.o#
OBJECTS_lib_$(TARGET_ARCH)   ?= getbits.o interface.o layer3.o mp3_ext.o decode.o dct64.o#
OBJECTS_lib                  := $(OBJECTS_lib_$(TARGET_ARCH))#

OBJECTS_bin_mzmp3            := main.o#
OBJECTS_bin_pmp3             := pmp3.o#
OBJECTS                      := $(OBJECTS_lib) $(OBJECTS_bin_mzmp3) $(OBJECTS_bin_pmp3)#

DEPEND                       := Makefile mp3_ext.h mpg123.h#

.PHONY: all clean

all: $(TARGET)
clean: ; $(RM) *.o $(TARGET)

$(TARGET_bin_mzmp3): $(OBJECTS_bin_mzmp3) lib$(THIS_NAME).a
	$(CC) $(LDFLAGS) $(LDFLAGS_EXEC) -o $(@) $(^)
	$(STRIP) $(STRIPFLAGS) $(@)
$(TARGET_bin_pmp3): $(OBJECTS_bin_pmp3) lib$(THIS_NAME).a
	$(CC) $(LDFLAGS) $(LDFLAGS_EXEC) -o $(@) $(^)
	$(STRIP) $(STRIPFLAGS) $(@)
$(TARGET_lib): $(OBJECTS_lib)
$(OBJECTS): $(DEPEND)

# %.so:    ; $(CC) $(LDFLAGS) -shared -Wl,-soname,$(@).0 -o $(@) $(^)
%.so:    ; $(CC) $(LDFLAGS) $(LDFLAGS_SHARED) -shared -o $(@) $(^)
%.a:     ; $(AR) $(ARFLAGS) $(@) $(^)
%.lo:    ; $(LD) $(LDFLAGS) -r -o $(@) $(^)
%.o: %.c ; $(CC) $(CFLAGS) -c -o $(@) $(<)

# End of Makefile
