summaryrefslogtreecommitdiff
path: root/src/libFLAC/Makefile.vc
blob: 79f1f6fa74bb011645ea1df0ed9786df71f19b05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#  libFLAC - Free Lossless Audio Codec library
#  Copyright (C) 2001,2002,2003  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" -DVERSION=\"1.0.4\" -DFLAC__NO_DLL -DFLAC__CPU_IA32 -DFLAC__HAS_NASM -DFLAC__OVERFLOW_DETECT /GX $(cdebug) $(cflags) /I ".\include" /I "..\..\include" -DSTRICT -YX /Od /D "_DEBUG" $<
!else
.c.obj:
	$(cc) /D "_LIB" -DVERSION=\"1.0.4\" -DFLAC__NO_DLL -DFLAC__CPU_IA32 -DFLAC__HAS_NASM /O2 $(crelease) $(cflags) /I ".\include" /I "..\..\include" -DSTRICT -YX -DNODEBUG $<
!endif

C_FILES= \
	bitbuffer.c \
	bitmath.c \
	cpu.c \
	crc.c \
	file_decoder.c \
	file_encoder.c \
	fixed.c \
	format.c \
	lpc.c \
	md5.c \
	memory.c \
	metadata_iterators.c \
	metadata_object.c \
	seekable_stream_decoder.c \
	seekable_stream_encoder.c \
	stream_decoder.c \
	stream_encoder.c \
	stream_encoder_framing.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_static.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_static.lib: $(OBJS)
	link.exe -lib /nodefaultlib -out:../../obj/release/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\release\lib\libFLAC_static.lib ..\..\obj\release\lib\libFLAC_static.pdb