# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is the Kagetaka Libraries.
#
# The Initial Developer of the Original Code is Hizuya Atsuzaki
# Portions created by the Initial Developer are Copyright (C) 2004
# the Initial Developer. All Rights Reserved.
#
# Contributor(s): Hizuya Atsuzaki <hizuya@hizlab.net>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

# Makefile for Microsoft NMAKE.EXE
#
# fobOrhɂ́A
# > NAMKE.EXE DEBUG=1
# ƂĉB
#
CC     = CL.EXE
LD     = LINK.EXE
RC     = RC.EXE

CFLAGS_USER  = 
LDFLAGS_USER = 
RCFLAGS_USER = 

NAME    = IEWrapper
OUTDIR  = ..\..\..\..\out\build\ext\win32\iew
DLLDIR  = ..\..\..\..\out\dist\bin

## Mode
!IFDEF DEBUG
CFLAGS_MODE  = /Od /MLd /Gm /ZI /GZ /Fp$(OUTDIR)\$(NAME).pch /Fd$(OUTDIR)\ /FD
LDFLAGS_MODE = /opt:noicf,noref /debug /pdb:$(OUTDIR)\$(NAME).pdb
RCFLAGS_MODE = 
!ELSE
CFLAGS_MODE  = /O2 /ML
LDFLAGS_MODE = /opt:icf,ref
RCFLAGS_MODE = 
!ENDIF

## Global
CFLAGS  = /nologo /W3 /WX /Fo$(OUTDIR)\ \
          $(CFLAGS_MODE)  $(CFLAGS_USER)
LDFLAGS = /nologo /nodefaultlib /subsystem:windows /machine:I386 \
          $(LDFLAGS_MODE) $(LDFLAGS_USER)
RCFLAGS = /l411 \
          $(RCFLAGS_MODE) $(RCFLAGS_USER)

# null file
!IF "$(OS)" == "Windows_NT"
NULL =
!ELSE 
NULL = nul
!ENDIF 


DEF  = IEWrapper.def
LAST = $(DLLDIR)\$(NAME).dll
DLL  = $(OUTDIR)\$(NAME).dll
OBJS = $(OUTDIR)\IEWrapper.obj \
       $(OUTDIR)\ClassFactory.obj \
       $(OUTDIR)\Listener.obj
RESS = $(OUTDIR)\IEWrapper.res

LIBS = libc.lib kernel32.lib user32.lib ole32.lib oleaut32.lib uuid.lib \
       advapi32.lib shlwapi.lib


##########################
## Suffixes rule

.SUFFIXES:
.SUFFIXES: .cpp .obj .rc .res


##########################
## Target

all: $(OUTDIR) $(DLLDIR) $(LAST)

.cpp{$(OUTDIR)}.obj:
	$(CC) $(CFLAGS) /c $<

.rc{$(OUTDIR)}.res:
	$(RC) $(RCFLAGS) /fo$*.res $<

$(DLL): $(OBJS) $(RESS) $(DEF)
	$(LD) $(LDFLAGS) /dll /def:$(DEF) /out:$(DLL) $(OBJS) $(LIBS) $(RESS)

$(LAST): $(DLLDIR) $(DLL)
	copy /y $(DLL) $(LAST)

$(OUTDIR):
	if not exist $(OUTDIR)/$(NULL) mkdir $(OUTDIR)

$(DLLDIR):
	if not exist $(DLLDIR)/$(NULL) mkdir $(DLLDIR)

clean:
	-del /f /q $(OUTDIR)\*.obj $(OUTDIR)\*.lib $(OUTDIR)\*.exp \
	           $(OUTDIR)\*.pdb $(OUTDIR)\*.idb $(OUTDIR)\*.res \
	           $(OUTDIR)\*.ilk $(DLL) $(LAST)


##########################
## Source Files

IEWrapper.cpp:    global.h guid.h resource.h ClassFactory.h
ClassFactory.cpp: global.h guid.h ClassFactory.h Listener.h
Listener.cpp:     global.h guid.h Listener.h

global.h:
guid.h:
version.h:
resource.h:
ClassFactory.h:
Listener.h:

IEWrapper.rc: version.h resource.h ..\..\..\bin\kagetaka1.ico ..\..\..\bin\kagetaka3.ico
