#  libFLAC - Free Lossless Audio Codec library
#  Copyright (C) 2001  Josh Coalson
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Library General Public
#  License as published by the Free Software Foundation; either
#  version 2 of the License, or (at your option) any later version.
#
#  This library 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
#  Library General Public License for more details.
#
#  You should have received a copy of the GNU Library General Public
#  License along with this library; if not, write to the
#  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
#  Boston, MA  02111-1307, USA.

!include <win32.mak>

NASM=nasmw

!IFDEF DEBUG
.c.obj:
	$(cc) /D "_LIB" /D FLAC__CPU_IA32 /D FLAC__HAS_NASM /D NO_VFORK /D FLAC__OVERFLOW_DETECT /GX $(cdebug) $(cflags) /I "..\..\include" /I ".\include" -DSTRICT -YX /Od /D "_DEBUG" $<
!else
.c.obj:
	$(cc) /D "_LIB" /D FLAC__CPU_IA32 /D FLAC__HAS_NASM /D NO_VFORK /O2 $(crelease) $(cflags) /I "..\..\include" /I ".\include" -DSTRICT -YX -DNODEBUG $<
!endif

C_FILES= \
	bitbuffer.c \
	bitmath.c \
	cpu.c \
	crc.c \
	file_decoder.c \
	fixed.c \
	format.c \
	lpc.c \
	md5.c \
	memory.c \
	seek_table.c \
	seekable_stream_decoder.c \
	stream_decoder.c \
	stream_encoder.c \
	stream_encoder_framing.c \
	utility.c

NASM_FILES= \
	ia32/cpu_asm.nasm \
	ia32/fixed_asm.nasm \
	ia32/lpc_asm.nasm

OBJS= $(C_FILES:.c=.obj) $(NASM_FILES:.nasm=.obj)

all: ordinals libFLAC.lib

ordinals: ../../include/FLAC/ordinals.h
../../include/FLAC/ordinals.h: ../../include/FLAC/ordinals.h.in
	sed -e 's/@FLaC__SIZE16@/short/g' -e 's/@FLaC__SIZE32@/int/g' -e 's/@FLaC__SIZE64@/long long/g' -e 's/@FLaC__USIZE16@/unsigned short/g' -e 's/@FLaC__USIZE32@/unsigned int/g' -e 's/@FLaC__USIZE64@/unsigned long long/g' ../../include/FLAC/ordinals.h.in > ../../include/FLAC/ordinals.h

libFLAC.lib: $(OBJS)
	link.exe -lib /nodefaultlib -out:../../obj/lib/$*.lib $(OBJS)

ia32/cpu_asm.obj: ia32/cpu_asm.nasm
	$(NASM) -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/cpu_asm.nasm -o ia32/cpu_asm.obj
ia32/fixed_asm.obj: ia32/fixed_asm.nasm
	$(NASM) -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/fixed_asm.nasm -o ia32/fixed_asm.obj
ia32/lpc_asm.obj: ia32/lpc_asm.nasm
	$(NASM) -f win32 -d OBJ_FORMAT_win32 -i ia32/ ia32/lpc_asm.nasm -o ia32/lpc_asm.obj

clean:
	-del *.obj ia32\*.obj *.pch
	-del ..\..\obj\lib\libFLAC.lib ..\..\obj\lib\libFLAC.pdb
