124 lines
3.6 KiB
Batchfile
124 lines
3.6 KiB
Batchfile
@ECHO OFF
|
|
IF "%1"=="" GOTO USAGE
|
|
REM assumes ran in same directory as this file, ie base of kernel source
|
|
SET BASEPATH=%CD%
|
|
CD ..
|
|
REM setup command aliases
|
|
SET ZIPIT=7z.exe a -tzip -mx9 -mm=deflate -mpass15 -r
|
|
REM when called from RELEASE.BAT assume clean source exported from version control
|
|
IF "%2"=="RELEASE" GOTO PACK
|
|
|
|
ECHO create source copy
|
|
if EXIST SOURCE RMDIR /S /Q SOURCE > NUL
|
|
MKDIR SOURCE
|
|
ECHO \.svn>SOURCE\SKIPLIST
|
|
ECHO .git>>SOURCE\SKIPLIST
|
|
ECHO .yml>>SOURCE\SKIPLIST
|
|
ECHO CNAME>>SOURCE\SKIPLIST
|
|
XCOPY %BASEPATH% SOURCE\ke%1 /S /V /I /Q /G /H /R /Y /EXCLUDE:SOURCE\SKIPLIST
|
|
DEL SOURCE\SKIPLIST > NUL
|
|
ECHO ensuring clean
|
|
PUSHD .
|
|
CD SOURCE\ke%1
|
|
CALL clobber.bat
|
|
POPD
|
|
|
|
:PACK
|
|
SET VERSION=%1
|
|
SET LSMRET=SRC
|
|
SET LSMFILE=SOURCE\ke%1\docs\fdkernel.lsm
|
|
GOTO LSM
|
|
:SRC
|
|
REM remove CONFIG.BAT if exists, such as building packages from develoment directory
|
|
IF EXIST SOURCE\ke%1\CONFIG.BAT DEL SOURCE\ke%1\CONFIG.BAT > NUL
|
|
ECHO zipping source
|
|
%ZIPIT% ke%1s.zip SOURCE\*
|
|
ECHO gathering source and creating APPINFO and expected packaging dir structure
|
|
REM FreeDOS package format, has APPINFO, BIN, DOC\KERNEL, SOURCE\KERNEL\
|
|
MKDIR PACKAGE
|
|
MKDIR PACKAGE\SOURCE
|
|
XCOPY /S /I /Q SOURCE\ke%1 PACKAGE\SOURCE\KERNEL
|
|
MKDIR PACKAGE\DOC
|
|
MKDIR PACKAGE\DOC\KERNEL
|
|
COPY /N SOURCE\ke%1\DOCS\* PACKAGE\DOC\KERNEL\
|
|
COPY SOURCE\ke%1\COPYING PACKAGE\DOC\KERNEL\COPYING
|
|
MKDIR PACKAGE\APPINFO
|
|
MOVE PACKAGE\DOC\KERNEL\fdkernel.lsm PACKAGE\APPINFO\KERNEL.LSM
|
|
MKDIR PACKAGE\BIN
|
|
ECHO using working configuration file
|
|
COPY %BASEPATH%\CONFIG.BAT SOURCE\ke%1\ > NUL
|
|
CD SOURCE\ke%1
|
|
|
|
ECHO build and packaging
|
|
SET VERSION=%1 (FAT12/FAT16)
|
|
SET FAT=16
|
|
SET CPU=86
|
|
SET BZKRET=F16
|
|
GOTO BZK
|
|
:F16
|
|
SET VERSION=%1 (FAT12/FAT16/FAT32)
|
|
SET FAT=32
|
|
SET CPU=386
|
|
SET BZKRET=F32
|
|
GOTO BZK
|
|
:F32
|
|
ECHO building FreeDOS package
|
|
CD ..\..\PACKAGE
|
|
%ZIPIT% ..\kernel.zip APPINFO BIN DOC SOURCE
|
|
ECHO clean up
|
|
CD ..
|
|
RMDIR /S /Q SOURCE > NUL
|
|
RMDIR /S /Q PACKAGE > NUL
|
|
ECHO Done.
|
|
SET BZKRET=
|
|
GOTO DONE
|
|
|
|
|
|
:BZK
|
|
ECHO build kernel %VERSION%
|
|
CALL build.bat /D KERNEL_VERSION /V "%1 " %CPU% win upx fat%FAT%
|
|
DEL BIN\K*86??.sys
|
|
SET LSMRET=BZK_2
|
|
SET LSMFILE=docs\fdkernel.lsm
|
|
GOTO LSM
|
|
:BZK_2
|
|
SET LSMRET=
|
|
ECHO zipping FAT%FAT% release version
|
|
%ZIPIT% ..\..\ke%1_%CPU%f%FAT%.zip BIN\* DOCS\*
|
|
ECHO storing binaries for FreeDOS package
|
|
COPY BIN\KERNEL.SYS ..\..\PACKAGE\BIN\KERNL%CPU%.SYS
|
|
COPY /B /Y BIN\country.sys ..\..\PACKAGE\BIN\COUNTRY.SYS
|
|
COPY /B /Y BIN\setver.sys ..\..\PACKAGE\BIN\SETVER.SYS
|
|
COPY /B /Y BIN\sys.com ..\..\PACKAGE\BIN\SYS.COM
|
|
IF EXIST BIN\share.com COPY /B /Y BIN\share.com ..\..\PACKAGE\BIN\SHARE.COM
|
|
ECHO cleaning up between builds
|
|
CALL clobber.bat
|
|
GOTO %BZKRET%
|
|
|
|
:LSM
|
|
ECHO Begin3>%LSMFILE%
|
|
ECHO Title: The FreeDOS Kernel>>%LSMFILE%
|
|
ECHO Version: %VERSION%>>%LSMFILE%
|
|
ECHO Entered-date: %DATE%>>%LSMFILE%
|
|
ECHO Description: The FreeDOS Kernel>>%LSMFILE%
|
|
ECHO Keywords: kernel, FreeDOS, DOS, MSDOS>>%LSMFILE%
|
|
ECHO Author: (developers: can be reached on the freedos-kernel mailing list)>>%LSMFILE%
|
|
ECHO Maintained-by: freedos-kernel@lists.sourceforge.net>>%LSMFILE%
|
|
ECHO Primary-site: http://github.com/fdos/kernel>>%LSMFILE%
|
|
ECHO Alternate-site: http://www.fdos.org/kernel/>>%LSMFILE%
|
|
ECHO Alternate-site: http://freedos.sourceforge.net/kernel/>>%LSMFILE%
|
|
ECHO Original-site: http://www.gcfl.net/pub/FreeDOS/kernel>>%LSMFILE%
|
|
ECHO Platforms: DOS, FreeDOS, DOSEMU (OpenWatcom/Borland/GCC-ia16, NASM, UPX)>>%LSMFILE%
|
|
ECHO Copying-policy: GPL2>>%LSMFILE%
|
|
ECHO End>>%LSMFILE%
|
|
SET LSMFILE=
|
|
SET VERSION=
|
|
GOTO %LSMRET%
|
|
|
|
:USAGE
|
|
ECHO Build kernel packages (interim builds or release without tagging) - usage: %0 {VERSION} e.g. %0 2039 or %0 git
|
|
:DONE
|
|
CD %BASEPATH%
|
|
SET BASEPATH=
|
|
SET ZIPIT=
|