# -*- mode: makefile; coding: sjis-dos; -*-
# Time-stamp: <2003-06-09 12:04:33 tfuruka1>
# Copyright (C) 2003 Tadamegu Furukawa#
#
# jbanner  makefile

# (while (re-search-forward "^#!" nil t) (replace-match "!"))
# (while (re-search-forward "^!" nil t) (replace-match "#!"))

#
#  makefaile ͊Tˈȉ̍\ɂȂĂ܂B
#
#        !if defined(CYGWIN)    (1)
#        
#        << CYGWIN ̒`>>    (2)
#
#        !else                  (1)
#
#        << MSVC ̒` >>     (3)
#
#        !endif                 (1)
#
#        << ʂ̒` >>
#
# (1)̕, nmake ł̂ݗLȕ@ł̂, make gpꍇ, 
# RgAEgĉBnmake gpꍇ, (2), (3)̃Rg
# OĉB, gcc ŃRpCꍇ̓R}hvvg
# 
#
#     nmake CYGWIN=1
#
# Ɠ͂ĉBMSVC ŃRpCꍇ
#
#     nmake
#
# ƂĉBmake gpꍇ, !if ͎gpo܂̂, (1)
# ̕RgAEgĉB, gcc ŃRpCꍇ,
# (2)̃RgO, (3)̕RgAEgĉBMSVC 
# ŃRpCꍇ, (3)̃RgO, (2)̕R
# gAEgĉB, R}hvvg
#
#     make
#
# Ɠ͂ĉB
#
# $Id: makefile,v 1.1 2004/01/19 09:01:28 tfuruka1 Exp $
# $Log: makefile,v $
# Revision 1.1  2004/01/19 09:01:28  tfuruka1
# rWǗRCSCVS֕ύX܂B
#


# 
#  nmake ȊO̓RgAEgĉ
!if defined(CYGWIN)

#######
####### CYGWINp
#######

# CYGWIN ̃\[XRpCʂRcBIDC_STATIC `ĂȂ
# MFC̃\[Xpwb_t@CgpȂ悤ɂ΁A͒
# ܂Bȉ͗ł

#    #ifdef CYGWIN
#    #   include <windows.h>
#    #   define IDC_STATIC -1
#    #else
#    #   include "afxres.h"
#    #endif

# \Pbggpꍇ́A__USE_W32_SOCKETS `قǂ悤
# łBɕs𔭌͖̂łAꉞEH[jO
# ̂œĂ܂B

O = o
RES = o
CC = gcc
CFLAGS = -g -DCYGWIN -Wall -D__USE_W32_SOCKETS -mno-cygwin
LDFLAGS = -lwsock32 -lgdi32
RC = windres
RCFLAGS = --define CYGWIN --define IDC_STATIC=-1 -o

#  nmake ȊO̓RgAEgĉ
!else

#######
####### MSC(VC)p
#######

O=obj
RES=res
CC=cl
CFLAGS=/W3 /Zi
LDFLAGS=/link user32.lib wsock32.lib gdi32.lib
RC=rc
RCFLAGS= /fo

#  nmake ȊO̓RgAEgĉ
!endif

#######
####### ȉMSVC, gcc
#######

.SUFFIXES:	.$(O) .c
.c.$(O):
	$(CC) $(CFLAGS) -c $<

OBJS = main.$(O) gdi_wrap.$(O) comm.$(O) string.$(O)
RES_BASE = resource
OBJ_RES = $(RES_BASE).$(RES)
BASE_NAME = jbanner
EXE = $(BASE_NAME).exe
TAR_GZ = $(BASE_NAME).tar.gz

TEXINFO = $(BASE_NAME).texinfo
INFO = $(BASE_NAME).info
PLAIN_TXT = $(BASE_NAME).txt
PDF = $(BASE_NAME).pdf
HTML = $(BASE_NAME).html

MAKEINFO=/usr/local/bin/makeinfo
TEXINDEX=/usr/local/bin/texindex
DVIPDF=/usr/local/bin/dvipdfmx
ETAGS=/usr/local/Meadow/1.15/bin/etags.exe

SHELL=/bin/sh

$(EXE) : $(OBJS) $(OBJ_RES)
	$(CC) -o $@ $(CFLAGS) $(OBJS) $(OBJ_RES) $(LDFLAGS)

# \[X̃RpCBMSVCrcCYGWINwindresŏo̓t@C̃Iv
# VقȂ̂ŁARCFLAGS̈ԍŌ̃IvVo̓t@C
# Ă܂B
$(OBJ_RES) : $(RES_BASE).rc
	$(RC) $(RCFLAGS) $@ $(RES_BASE).rc

$(OBJS) : makefile jbanner.h

tags:
	$(ETAGS) *.c *.h

# tar Ōł߂Bnmake shellĂяoȂ̂ŁAIshĂ
# oĂ܂B
tar: clean tags
	$(SHELL) -c "(cd ..; tar cvzf $(TAR_GZ) src)"

#
# --- hLg
#
doc : $(INFO) $(PDF) $(BASE_NAME).ps $(PLAIN_TXT) $(HTML)

# --- html
$(HTML) : $(TEXINFO) makefile
	@echo ---
	@echo --- make HTML ---
	@echo ---
	$(MAKEINFO) --html --no-split $(TEXINFO)
	cp $@ ../doc/.
# --- text
$(PLAIN_TXT) : $(TEXINFO) makefile
	@echo ---
	@echo --- make text ---
	@echo ---
	$(MAKEINFO) --no-headers $(TEXINFO) > $@
	cp $@ ../doc/.
# --- info
$(INFO) : $(TEXINFO) makefile
	@echo ---
	@echo --- make info ---
	@echo ---
	$(MAKEINFO) $(TEXINFO)
	cp $@ ../doc/.
# --- pdf
$(PDF) : $(BASE_NAME).dvi
	@echo ---
	@echo --- make pdf ---
	@echo ---
	$(DVIPDF) $(BASE_NAME).dvi
	cp $@ ../doc/.

# --- dvi --- CYGWINtexindexƓ{ꂪłȂ̂ŁApTeX
# ŔzzĂtexindexgpĂ܂BƂ낪ApTeXtexindex
# ƁAChJ[h̓WJ܂oȂ悤Ȃ̂ŁAshIɌĂ
# oďĂ܂B
$(BASE_NAME).dvi : $(TEXINFO) makefile
	@echo ---
	@echo --- make dvi ---
	@echo ---
	ptex $(TEXINFO)
	$(SHELL) -c "$(TEXINDEX) $(BASE_NAME).??"
	ptex $(TEXINFO)
	ptex $(TEXINFO)
# --- ps
$(BASE_NAME).ps : $(BASE_NAME).dvi
	@echo ---
	@echo --- make PostScript ---
	@echo ---
	dvipsk -R600 -Pdl $(BASE_NAME).dvi

clean :
	rm -f *.obj
	rm -f *.o
	rm -f *.*~
	rm -f *~
	rm -f *.pdb
	rm -f *.res
	rm -f *.ilk
	rm -f *.html
	rm -f *.dvi
	rm -f *.txt
	rm -f *.pdf
	rm -f *.ps
	rm -f *.toc
	rm -f *.log
	rm -f *.aux
	rm -f *.cp
	rm -f *.cps
	rm -f *.fn
	rm -f *.fns
	rm -f *.pg
	rm -f *.pgs
	rm -f *.tp
	rm -f *.tps
	rm -f *.vr
	rm -f *.vrs
	rm -f *.ky
	rm -f *.kys
	rm -f *.info
	rm -f ../$(TAR_GZ)
	rm -f $(EXE)
