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

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




John

I agree on the server download and need to learn more about conditional runtime capabilities of make to help restrict such a process to critical update. AKA, keep the app from becoming stale.

*sign* eventually, I'll understand make and scripting.....hopefully before I retire a which time I'll go off and ride my bicycle everyday :-)

....Chris

John Williams wrote:
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.



___________________________
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/