Nightly Builds and Better Download Package

Walter Bright newshound2 at digitalmars.com
Fri May 24 11:43:52 PDT 2013


On 5/24/2013 11:15 AM, nazriel wrote:
> I still don't know how do you issue commands.
>
> Do you use something like:
> make -f posix.mak/win32.mak zip in dmd/src
> make -f posix.mak/win32.mak zip in phobos
>
> on each platform then merge zips into one?
>
> I am wondering because I am willing to work on it but I am still not sure where
> should I put this make rule. DMD makefile?
>
> That would build DMD both 32bit and 64bit, then build druntime both 32bit and
> 64bit also static and shared one, then phobos both 32bit and 64bit also static
> and shared one and then create tar.bz2 for certain platform, be it FreeBSD for
> example or zip for Windows.
>
> Also there would be need to still manually create meta-package with all those
> binaries for a bit of time to allow external tools migrate (as noted by Jacob)
>
> Is dmd's makefile the right place for this make rule?
> Or creating standalone makefile for creating releases both milestone and nightly
> is better idea?
>
> I need a little bit of direction before I start working on it.
> It will be ready for monday if nobody beats me in creating such rule ;)

The only directive you have is so that "make package" will generate the release 
package on the platform the command is run on.

Here is the "install" script I use. It runs under Windows and uses ssh to gather 
the builds from the individual platforms and write them to the \dmd2 directory, 
and the dmd2 directory is then zipped and uploaded to the digitalmars.com server.

----------------------------------------------------

make install
cd phobos
make html
make install
cd ..\doc
make
make install
cd phobos
make install
cd ..\..
cd druntime
make install
cd ..
copy ..\rdmd\dman.exe \dmd2\windows\bin
copy ..\rdmd\rdmd.exe \dmd2\windows\bin
copy ..\rdmd\ddemangle.exe \dmd2\windows\bin
copy ..\VERSION \dmd2\src\

copy \dm\lib\snn.lib \dmd2\windows\lib


\putty\pscp -i \.ssh\colossus.ppk walter at mercury:cbx/mars/dmd32 
\dmd2\linux\bin32\dmd
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:cbx/mars/dmd \dmd2\linux\bin64\
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:cbx/mars/phobos/generated/linux/release/32/libphobos2.a 
\dmd2\linux\lib32
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:cbx/mars/phobos/generated/linux/release/64/libphobos2.a 
\dmd2\linux\lib64
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:cbx/mars/phobos/generated/linux/release/32/libphobos2.so 
\dmd2\linux\lib32
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:cbx/mars/phobos/generated/linux/release/64/libphobos2.so 
\dmd2\linux\lib64

rem \putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/shell32 
\dmd2\linux\bin32\shell
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/obj2asm32 
\dmd2\linux\bin32\obj2asm
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/dumpobj32 
\dmd2\linux\bin32\dumpobj
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:cbx/rdmd/rdmd32 
\dmd2\linux\bin32\rdmd
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:cbx/rdmd/ddemangle32 
\dmd2\linux\bin32\ddemangle
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/dman32 \dmd2\linux\bin32\dman

rem \putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/shell \dmd2\linux\bin64
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/obj2asm \dmd2\linux\bin64
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/dumpobj \dmd2\linux\bin64
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:cbx/rdmd/rdmd \dmd2\linux\bin64
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:cbx/rdmd/ddemangle 
\dmd2\linux\bin64
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./bin/dman \dmd2\linux\bin64

\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./dpl/dmd/docs/man/man1/dmd.1 
\dmd2\man\man1\
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:./dpl/dmd/docs/man/man1/dmd.conf.5 \dmd2\man\man1\
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:./dpl/dmd/docs/man/man1/dumpobj.1 \dmd2\man\man1\
\putty\pscp -i \.ssh\colossus.ppk 
walter at mercury:./dpl/dmd/docs/man/man1/obj2asm.1 \dmd2\man\man1\
\putty\pscp -i \.ssh\colossus.ppk walter at mercury:./dpl/dmd/docs/man/man1/rdmd.1 
\dmd2\man\man1\


\putty\pscp -i \.ssh\colossus.ppk walter at goblin:cbx/mars/dmd \dmd2\freebsd\bin32
\putty\pscp -i \.ssh\colossus.ppk 
walter at goblin:cbx/mars/phobos/generated/freebsd/release/32/libphobos2.a 
\dmd2\freebsd\lib32

\putty\pscp -i \.ssh\colossus.ppk walter at goblin:/usr/local/bin/shell32 
\dmd2\freebsd\bin32\shell
\putty\pscp -i \.ssh\colossus.ppk walter at goblin:/usr/local/bin/obj2asm32 
\dmd2\freebsd\bin32\obj2asm
\putty\pscp -i \.ssh\colossus.ppk walter at goblin:/usr/local/bin/dumpobj32 
\dmd2\freebsd\bin32\dumpobj
\putty\pscp -i \.ssh\colossus.ppk walter at goblin:cbx/rdmd/rdmd32 
\dmd2\freebsd\bin32\rdmd
\putty\pscp -i \.ssh\colossus.ppk walter at goblin:cbx/rdmd/ddemangle32 
\dmd2\freebsd\bin32\ddemangle
\putty\pscp -i \.ssh\colossus.ppk walter at goblin:/usr/local/bin/dman32 
\dmd2\freebsd\bin32\dman


\putty\pscp -i \.ssh\colossus.ppk ming at pluto:cbx/mars/dmd \dmd2\osx\bin
\putty\pscp -i \.ssh\colossus.ppk 
ming at pluto:cbx/mars/phobos/generated/osx/release/libphobos2.a \dmd2\osx\lib

\putty\pscp -i \.ssh\colossus.ppk ming at pluto:./bin/shell \dmd2\osx\bin
\putty\pscp -i \.ssh\colossus.ppk ming at pluto:./bin/obj2asm \dmd2\osx\bin
\putty\pscp -i \.ssh\colossus.ppk ming at pluto:./bin/dumpobj \dmd2\osx\bin
\putty\pscp -i \.ssh\colossus.ppk ming at pluto:./bin/dman \dmd2\osx\bin
\putty\pscp -i \.ssh\colossus.ppk ming at pluto:cbx/rdmd/rdmd \dmd2\osx\bin
\putty\pscp -i \.ssh\colossus.ppk ming at pluto:cbx/rdmd/ddemangle \dmd2\osx\bin


pushd \dmzip
make putbeta2
popd





More information about the Digitalmars-d mailing list