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

Re: [microblaze-uclinux] Problem building some softwares included in Petalinux dist.



Hi Chris,

On Mon, May 18, 2009 at 12:12 AM, Chris Robson <clr1004@xxxxxxxxxxx> wrote:

>
> Doing some tweaking and using OpenVPN because its a nicely behaved
> application here is a possible tutorial "makefile"
> Constructive comments are more than welcome, for example, variable
> naming here could be improved.
> I hope this is the approach your where looking for?
>
> This make file builds and the executables run

[snip]

Looks good.  Personally I'm not a huge fan of having a distribution
download stuff from the internet - servers break, URLs change etc, and
tend more to just snapshot a particular release into the distribution
itself.

But, generally as a guide for this sort of stuff I'm sure it will be
useful to people.

Cheers,

John

>
> #-----------------------------------------------------------------
> # The comments within this file are for those who, like myself
> # who are new at cross-compiling and creating a "makefile" for
> # for environments like Petalinux's userland and libland.
> # Thanks to the makefile experts out there from which most
> # of the information here was exploited.
> #
> # Currently this file is placed within the application directory
> # tree ./petalinux-dist/user/[application name]. (Possibly a
> # cleaner approach is to have the ./user/makefile create the
> # specific application directory??) This example is for building
> # the application "openvpn". First a clean
> # ./petalinux-dist/user/openvpn is created and this
> # "makefile" placed into it. Because DOWNLOADAPP is defined, a
> # new svn release of openvpn is pull into the directory.
> #
> #-----------------------------------------------------------------
> # Define ./configure options. Pay attention to ":=" and " \" as
> # these are required.
> CONFOPTS := --with-ssl-lib=$(ROOTDIR)/user/openssl \
> --with-ssl-headers=$(ROOTDIR)/user/openssl/include
> #-----------------------------------------------------------------
> # Define CONFIGURE_OPTS here if the defaults need to be overridden.
> # For example, the defaults include the configure option
> # "--disable-shared" but this build of openvpn required the shared
> # library so CONFIGURE_OPTS is redefined without it.
> CONFIGURE_OPTS := --host=microblaze-linux \
> --build=i686-pc-linux-gnu \
> --target=microblaze-linux
> #------------------------------------------------------------------
> # Define DOWNLOADAPP to retrieve the latest version of openvpn.
> # Since openvpn is well behaved an svn release pull can be
> # used. This is not always the case and may require manual
> # downloading of the application into the user/appl directory
> # directly. For example, applications which are closely integrated
> # with a particular linux kernel release.
> DOWNLOADAPP :=svn co \
> http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn ./
> #------------------------------------------------------------------
> # Defines the distribution cleanup method. For example openvpn
> # uses a supplied script "doclean". Other applications might
> # use "make distclean".
> CLEANDIST := doclean
> #------------------------------------------------------------------
> # Define the automake method. This could be autoconf, autoreconf
> # (as in the openvpn case) or automake.
> AUTOBUILD := autoreconf
> #------------------------------------------------------------------
> # Define any automake options.
> AUTOBUILDOPTIONS := -i -v
> #------------------------------------------------------------------
> # Define compiler options. This maybe required because the
> # application is not well behaved.
> # Openvpn does not require these definitions.
> #CC := mb-linux-gcc
> #CXX := mb-linux-g++
> #RANLIB := mb-linux-ranlib
> #------------------------------------------------------------------
> # Defines the application executable to be built into the romfs
> # APPNAME is used here so if more than one executable is used
> # they are listed here not within the non-editing portion of
> # this makefile.
> APPNAME := $(ROMFSINST) build/openvpn /bin/openvpn
>
> #------------------------------------------------------------------
> # DO NOT EDITING ANYTHING BEYOND THIS POINT
>
> all: build/build
> $(MAKE) -C build
>
> build/build: makefile
> @rm -rf build
> @mkdir build
> ($(DOWNLOADAPP); \
> ./$(CLEANDIST); \
> $(AUTOBUILD) $(AUTOBUILDOPTIONS); \
> cd build; \
> sh ../configure $(CONFIGURE_OPTS) $(CONFOPTS))
> @touch build/build
>
> clean:
> rm -rf build
>
> romfs:
> $(APPNAME)
>
>
>
> ________________________________
> Insert movie times and more without leaving Hotmail®. See how.



-- 
John Williams, PhD, B.Eng, B.IT
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com  p: +61-7-30090663  f: +61-7-30090663

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/