forked from enlightenment/efl
strealine the getting started guide to have simpler autofoo.
SVN revision: 62286
This commit is contained in:
parent
ea62544b88
commit
3c6ec42179
|
@ -52,7 +52,6 @@ organisations behind this, as listed in the @ref authors page.
|
|||
*
|
||||
* @code
|
||||
* #include <Elementary.h>
|
||||
* #ifndef ELM_LIB_QUICKLAUNCH
|
||||
* EAPI int
|
||||
* elm_main(int argc, char **argv)
|
||||
* {
|
||||
|
@ -61,86 +60,51 @@ organisations behind this, as listed in the @ref authors page.
|
|||
* elm_shutdown(); // after mainloop finishes running, shutdown
|
||||
* return 0; // exit 0 for exit code
|
||||
* }
|
||||
* #endif
|
||||
* ELM_MAIN()
|
||||
* @endcode
|
||||
*
|
||||
* To take full advantage of the quicklaunch architecture for launching
|
||||
* processes as quickly as possible (saving time at startup time like
|
||||
* connecting to X11, loading and linking shared libraries) you may want to
|
||||
* use the following configure.in/configure.ac and Makefile.am and autogen.sh
|
||||
* script to generate your files. It is assumed your application uses the
|
||||
* main.c file for its code.
|
||||
* To use autotools (which helps in many ways in the long run, like being able
|
||||
* to immediately create releases of your software directly from your tree
|
||||
* and ensure everything needed to buiuld it is there) you will need a
|
||||
* configure.ac, Makefile.am and autogen.sh file.
|
||||
*
|
||||
* configure.in/configure.ac:
|
||||
* configure.ac:
|
||||
*
|
||||
@verbatim
|
||||
AC_INIT(myapp, 0.0.0, myname@mydomain.com)
|
||||
AC_PREREQ(2.52)
|
||||
AC_CONFIG_SRCDIR(configure.in)
|
||||
|
||||
AM_INIT_AUTOMAKE(1.6 dist-bzip2)
|
||||
AC_CONFIG_SRCDIR(configure.ac)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
AC_C_BIGENDIAN
|
||||
AC_ISC_POSIX
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_STDC
|
||||
AC_HEADER_STDC
|
||||
AC_C_CONST
|
||||
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
|
||||
define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
|
||||
AC_PROG_LIBTOOL
|
||||
|
||||
AM_INIT_AUTOMAKE(1.6 dist-bzip2)
|
||||
PKG_CHECK_MODULES([ELEMENTARY], elementary)
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
@endverbatim
|
||||
*
|
||||
* Makefile.am:
|
||||
*
|
||||
@verbatim
|
||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in configure depcomp install-sh missing
|
||||
|
||||
INCLUDES = -I$(top_srcdir) @ELEMENTARY_CFLAGS@
|
||||
INCLUDES = -I$(top_srcdir)
|
||||
|
||||
bin_PROGRAMS = myapp
|
||||
myapp_LTLIBRARIES = myapp.la
|
||||
|
||||
myappdir = $(libdir)
|
||||
|
||||
myapp_la_SOURCES = main.c
|
||||
myapp_la_LIBADD = @ELEMENTARY_LIBS@
|
||||
myapp_la_CFLAGS =
|
||||
myapp_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
bin_PROGRAMS = myapp
|
||||
|
||||
myapp_SOURCES = main.c
|
||||
myapp_LDADD = @ELEMENTARY_LIBS@
|
||||
myapp_CFLAGS = -DELM_LIB_QUICKLAUNCH=1
|
||||
myapp_CFLAGS = @ELEMENTARY_CFLAGS@
|
||||
@endverbatim
|
||||
*
|
||||
* autogen.sh:
|
||||
*
|
||||
@verbatim
|
||||
#!/bin/sh
|
||||
rm -rf autom4te.cache
|
||||
rm -f aclocal.m4 ltmain.sh
|
||||
rm -rf m4
|
||||
mkdir m4
|
||||
|
||||
touch README
|
||||
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1
|
||||
echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS || exit 1
|
||||
echo "Running autoheader..." ; autoheader || exit 1
|
||||
echo "Running autoconf..." ; autoconf || exit 1
|
||||
echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
|
||||
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
|
||||
|
||||
if [ -z "$NOCONFIGURE" ]; then
|
||||
./configure "$@"
|
||||
fi
|
||||
./configure "$@"
|
||||
@endverbatim
|
||||
*
|
||||
* To generate all the things needed to bootstrap just run:
|
||||
|
@ -209,80 +173,9 @@ make maintainer-clean
|
|||
* This deletes all the files autogen.sh will produce so the tree is clean
|
||||
* to be put into a revision-control system (like CVS, SVN or GIT for example).
|
||||
*
|
||||
* The above will build a library - libmyapp.so and install in the target
|
||||
* library directory (default is /usr/local/lib). You will also get a
|
||||
* myapp.a and myapp.la - these are useless and can be deleted. Libtool likes
|
||||
* to generate these all the time. You will also get a binary in the target
|
||||
* binary directory (default is /usr/local/bin). This is a "debug binary".
|
||||
* This will run and dlopen() the myapp.so and then jump to it's elm_main
|
||||
* function. This allows for easy debugging with GDB and Valgrind. When you
|
||||
* are ready to go to production do the following:
|
||||
*
|
||||
* 1. delete the myapp binary. i.e. rm /usr/local/bin/myapp
|
||||
*
|
||||
* 2. symlink the myapp binary to elementary_run (supplied by elementary).
|
||||
* i.e. ln -s elmentary_run /usr/local/bin/myapp
|
||||
*
|
||||
* 3. run elementary_quicklaunch as part of your graphical login session and
|
||||
* keep it running.
|
||||
*
|
||||
* This will man elementary_quicklaunch does pre-initialization before the
|
||||
* application needs to be run, saving the effort at the time the application
|
||||
* is needed, thus speeding up the time it takes to appear.
|
||||
*
|
||||
* If you don't want to use the quicklaunch infrastructure (which is
|
||||
* optional), you can execute the old fashioned way by just running the
|
||||
* myapp binary loader than will load the myapp.so for you, or you can
|
||||
* remove the split-file binary and put it into one binary as things always
|
||||
* have been with the following configure.in/configure.ac and Makfile.am
|
||||
* files:
|
||||
*
|
||||
* configure.in/configure.ac:
|
||||
*
|
||||
@verbatim
|
||||
AC_INIT(myapp, 0.0.0, myname@mydomain.com)
|
||||
AC_PREREQ(2.52)
|
||||
AC_CONFIG_SRCDIR(configure.in)
|
||||
|
||||
AM_INIT_AUTOMAKE(1.6 dist-bzip2)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
AC_C_BIGENDIAN
|
||||
AC_ISC_POSIX
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_STDC
|
||||
AC_HEADER_STDC
|
||||
AC_C_CONST
|
||||
|
||||
PKG_CHECK_MODULES([ELEMENTARY], elementary)
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
@endverbatim
|
||||
*
|
||||
* Makefile.am:
|
||||
*
|
||||
@verbatim
|
||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
INCLUDES = -I$(top_srcdir) @ELEMENTARY_CFLAGS@
|
||||
|
||||
bin_PROGRAMS = myapp
|
||||
|
||||
myapp_SOURCES = main.c
|
||||
myapp_LDADD = @ELEMENTARY_LIBS@
|
||||
myapp_CFLAGS =
|
||||
@endverbatim
|
||||
*
|
||||
* Notice that they are the same as before, just with libtool and library
|
||||
* building sections removed. Both ways work for building elementary
|
||||
* applications. It is up to you to decide what is best for you. If you just
|
||||
* follow the template above, you can do it both ways and can decide at build
|
||||
* time. The more advanced of you may suggest making it a configure option.
|
||||
* That is perfectly valid, but has been left out here for simplicity, as our
|
||||
* aim to have an Elementary (and EFL) tutorial, not an autoconf & automake
|
||||
* document.
|
||||
*
|
||||
* There is a more advanced way of making use of the quicklaunch infrastructure
|
||||
* in Elementary (which will not be covered here due to its more advanced
|
||||
* nature).
|
||||
*/
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue