mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Mingw-cross-env-list] package removal


From: Volker Grabsch
Subject: Re: [Mingw-cross-env-list] package removal
Date: Mon, 25 Jan 2010 13:07:20 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

Tony Theodore <address@hidden> schrieb:
> > Having a way to exclude packages from the build *may* be useful
> > though. Something like:
> >
> > make no-qt no-wxwidgets
> >
> > would be good for someone who uses gtk and a long list of other
> > libraries, but rm works well enough.

Maybe you also want to disable gdal, boost, etc. which also take
a long time to build. In the end, I think you're better off writing
a positive list rather than a negative list.

And there is of course my standard counter argument against this
kind of build performance tuning: You usually don't want to wait
for the initial "make" anyway, so you'll run it over night. And
if it runs over night, who cares whether it takes 1 hour or 3 hours?

> Actually, you could use the dependency magic with a pseudo package:
> 
> src/my-packages.mk
> 
> PKG             := my-packages
> $(PKG)_DEPS     := gtk boost ..... and a long list of packages you're 
> interested in
> 
> then simply:
> 
> make my-packages

1)

If you go that route, you could also fill in the $(PKG)_BUILD
and put your source tarball into pkg/. Then, you could create
your whole win32 package via:

    make my-application


2)

However, I'd propose another way: Create your dependencies in a
custom win32 build script. You usually have such a script anyway,
don't you? It might look like this:

    #!/bin/sh
    set -euvx

    # ensure that all dependencies are created and up to date
    cd /PATH/TO/mingw-cross-env
    hg pull -u
    make gtk boost ...etc...

    # cross compile the application
    cd /PATH/TO/my-application
    ./configure --host=i686-pc-mingw32
    make

    # reduce EXE size
    strip my-application.exe
    upx   my-application.exe

    # distribution variant 1: create simple ZIP archive
    zip -r9 ...

    # distribution variant 2: create installer EXE via NSIS
    makensis ...

    # upload
    scp/rsync ...


3)

There's also a third way you might find interesting: You could
simply document the list of dependencies in your project's README:
(or at another prominent place)

    The win32 port of this application needs a mingw-cross-env
    which is initialized via:

    make gtk boost ...etc...

In other words: Your docs could provide a simple build command
for copy&paste into the command line.


Greets,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR




reply via email to

[Prev in Thread] Current Thread [Next in Thread]