# Makefile for Microsoft Visual C++
#
!include version.mk
UNIFILE = 1
CC = cl.exe /nologo
LINK = link.exe /nologo
SRCDIR = .
DEFINES = /DVER_REVISION=\"$(DOS2UNIX_VERSION)\" /DVER_DATE=\"$(DOS2UNIX_DATE)\" /DVER_AUTHOR=\""$(DOS2UNIX_AUTHOR)"\"
CFLAGS = $(DEFINES)
!ifdef DEBUG
LDFLAGS = -debug
!else
LDFLAGS =
!endif
PROGRAMS = dos2unix.exe unix2dos.exe mac2unix.exe unix2mac.exe
HTMLEXT = htm
PACKAGE = dos2unix
DOCFILES = man\man1\$(PACKAGE).txt man\man1\$(PACKAGE).$(HTMLEXT)
VERSIONSUFFIX = -win32
UCS = 1
prefix = c:\usr\local
# We only build and install the English manuals, because wildcards on
# directory names are not supported in Windows CMD. Like man\*\man1\*.txt will
# give a syntax error. It could be done with more scripting, but for simplicity
# we stick to English.
all: $(PROGRAMS) $(DOCFILES)
dos2unix.exe: dos2unix.obj querycp.obj common.obj
$(LINK) $(LDFLAGS) dos2unix.obj querycp.obj common.obj setargv.obj mpr.lib shell32.lib
unix2dos.exe: unix2dos.obj querycp.obj common.obj
$(LINK) $(LDFLAGS) unix2dos.obj querycp.obj common.obj setargv.obj mpr.lib shell32.lib
!if "$(UCS)" == "1"
CFLAGS = $(CFLAGS) -DD2U_UNICODE
!endif
!if "$(UNIFILE)" == "1"
CFLAGS = $(CFLAGS) -DD2U_UNIFILE
!endif
!if "$(DEBUGMSG)" == "1"
CFLAGS = $(CFLAGS) -DDEBUG
!endif
dos2unix.obj : $(SRCDIR)\dos2unix.c $(SRCDIR)\querycp.h $(SRCDIR)\common.h
$(CC) -c $(CFLAGS) $(SRCDIR)\dos2unix.c
unix2dos.obj : $(SRCDIR)\unix2dos.c $(SRCDIR)\querycp.h $(SRCDIR)\common.h
$(CC) -c $(CFLAGS) $(SRCDIR)\unix2dos.c
querycp.obj : $(SRCDIR)\querycp.c $(SRCDIR)\querycp.h
$(CC) -c $(CFLAGS) $(SRCDIR)\querycp.c
common.obj : $(SRCDIR)\common.c $(SRCDIR)\common.h
$(CC) -c $(CFLAGS) $(SRCDIR)\common.c
mac2unix.exe : dos2unix.exe
copy /v dos2unix.exe mac2unix.exe
unix2mac.exe : unix2dos.exe
copy /v unix2dos.exe unix2mac.exe
exec_prefix = $(prefix)
bindir = $(exec_prefix)\bin
datarootdir = $(prefix)\share
datadir = $(datarootdir)
!ifndef docsubdir
docsubdir = $(PACKAGE)-$(DOS2UNIX_VERSION)
!endif
docdir = $(datarootdir)\doc\$(docsubdir)
INSTALL_OBJS_DOC = README.txt NEWS.txt ChangeLog.txt COPYING.txt TODO.txt BUGS.txt $(DOCFILES)
$(prefix):
if not exist $@ mkdir $@
$(bindir): $(prefix)
if not exist $@ mkdir $@
$(datarootdir): $(prefix)
if not exist $@ mkdir $@
$(datarootdir)\doc: $(datarootdir)
if not exist $@ mkdir $@
$(docdir): $(datarootdir)\doc
if not exist $@ mkdir $@
install: $(PROGRAMS) $(DOCFILES) $(bindir) $(docdir)
copy dos2unix.exe $(bindir)
copy mac2unix.exe $(bindir)
copy unix2dos.exe $(bindir)
copy unix2mac.exe $(bindir)
copy README.txt $(docdir)
copy NEWS.txt $(docdir)
copy ChangeLog.txt $(docdir)
copy COPYING.txt $(docdir)
copy TODO.txt $(docdir)
copy BUGS.txt $(docdir)
copy man\man1\$(PACKAGE).txt $(docdir)
copy man\man1\$(PACKAGE).$(HTMLEXT) $(docdir)
man\man1\dos2unix.txt : man\man1\dos2unix.pod
pod2text $** > $@
man\man1\dos2unix.$(HTMLEXT) : man\man1\dos2unix.pod
pod2html --title="$(PACKAGE) $(DOS2UNIX_VERSION) - DOS/MAC to UNIX and vice versa text file format converter" $** > $@
TXTFILES = man\man1\$(PACKAGE).txt
HTMLFILES = man\man1\$(PACKAGE).$(HTMLEXT)
txt : $(TXTFILES)
html : $(HTMLFILES)
doc : $(DOCFILES)
uninstall:
-del $(bindir)\dos2unix.exe
-del $(bindir)\mac2unix.exe
-del $(bindir)\unix2dos.exe
-del $(bindir)\unix2mac.exe
-rmdir /s /q $(docdir)
!ifndef VERSIONSUFFIX
VERSIONSUFFIX = -bin
!endif
!ifndef ZIPFILE
ZIPFILE = $(PACKAGE)$(DOS2UNIX_VERSION)$(VERSIONSUFFIX).zip
!endif
ZIPOBJ = bin\dos2unix.exe bin\mac2unix.exe bin\unix2dos.exe bin\unix2mac.exe share\doc\$(docsubdir) $(ZIPOBJ_EXTRA)
DISTCMD = dist.bat
dist :
@echo cd /d $(prefix) > $(DISTCMD)
@echo unix2dos -k share\doc\$(docsubdir)\*.txt >> $(DISTCMD)
@echo unix2dos -k share\doc\$(docsubdir)\*.$(HTMLEXT) >> $(DISTCMD)
@echo zip -r $(ZIPFILE) $(ZIPOBJ) >> $(DISTCMD)
@echo cd /d $(MAKEDIR) >> $(DISTCMD)
@echo move $(prefix)\$(ZIPFILE) .. >> $(DISTCMD)
.\$(DISTCMD)
mostlyclean :
-del *.obj
-del *.exe
-del *.tmp
clean : mostlyclean
-del $(DISTCMD)
maintainer-clean : clean
-del $(DOCFILES)