Ok, solve it. I was missing a Makefile on my src directory.

[]´s,

- Uderman
http://www.temadigital.com.br/



On Tue, Jul 28, 2009 at 3:11 PM, Felipe Uderman <[email protected]>wrote:

> Hello there list,
>
> Sorry to ask for help on such a n00bish problem, but I am trying to compile
> my first package for kamikaze, and I am having a hard time doing it. I have
> tried to find a solution for this, but my linux/gcc knowleadge seens to be
> too limited. Can anyone have a look at it? It seens that it expects for
> something on the build directory that is not there.
>
> Sorry for the long message, but I would like to add enought information :-)
>
>
> Ok, I am trying to compile a simple helloworld program, and mostly have
> used info of this tutorial:
> http://www.gargoyle-router.com/wiki/doku.php?id=openwrt_coding#part_ia_simple_program_in_c_--_8_23_2007
> I have also found this wiki page:
> http://oldwiki.openwrt.org/BuildingPackagesHowTo.html#head-2518083795a24014316929f7c50a435de9679336
> And this forum post: https://forum.openwrt.org/viewtopic.php?pid=31794
>
> First, here is my error message:
>
> make[1]: Entering directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686'
> make[2]: Entering directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686'
> make[3]: Entering directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/package/helloworld'
> mkdir -p
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld
> cp -fpR ./src/*
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/
> touch
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/.prepared_04e751243d8111b24177add43b7bf13f
> (cd
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/./;
> if [ -x ./configure ]; then
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/host/bin/find
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/
> -name config.guess | xargs -r chmod u+w;
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/host/bin/find
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/
> -name config.guess | xargs -r -n1 cp
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/scripts/config.guess;
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/host/bin/find
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/
> -name config.sub | xargs -r chmod u+w;
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/host/bin/find
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/
> -name config.sub | xargs -r -n1 cp
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/scripts/config.sub;
> AR=mipsel-linux-uclibc-ar AS="mipsel-linux-uclibc-gcc -c -Os -pipe -mips32
> -mtune=mips32 -funit-at-a-time -fhonour-copts" LD=mipsel-linux-uclibc-ld
> NM=mipsel-linux-uclibc-nm CC="mipsel-linux-uclibc-gcc"
> GCC="mipsel-linux-uclibc-gcc" CXX="mipsel-linux-uclibc-g++"
> RANLIB=mipsel-linux-uclibc-ranlib STRIP=mipsel-linux-uclibc-strip
> OBJCOPY=mipsel-linux-uclibc-objcopy OBJDUMP=mipsel-linux-uclibc-objdump
> SIZE=mipsel-linux-uclibc-size CFLAGS="-Os -pipe -mips32 -mtune=mips32
> -funit-at-a-time -fhonour-copts " CXXFLAGS="-Os -pipe -mips32 -mtune=mips32
> -funit-at-a-time -fhonour-copts "
> CPPFLAGS="-I/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/include
> -I/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/include
> "
> LDFLAGS="-L/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/toolchain-mipsel_gcc3.4.6/lib
> -L/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/lib
> -L/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/lib
> "
> PKG_CONFIG_PATH="/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/lib/pkgconfig:/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/host/usr/lib/pkgconfig"
> PKG_CONFIG_LIBDIR="/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/lib/pkgconfig"
> ./configure --target=mipsel-linux --host=mipsel-linux --build=i486-linux-gnu
> --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr
> --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib
> --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var
> --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; )
> touch
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/.configured
> CFLAGS="-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts
> -I/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/include
> -I/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/include
> " CXXFLAGS="-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time -fhonour-copts
> -I/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/include
> -I/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/include
> "
> LDFLAGS="-L/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/toolchain-mipsel_gcc3.4.6/lib
> -L/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/usr/lib
> -L/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/lib
> " make -C
> /home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/.
> AR=mipsel-linux-uclibc-ar AS="mipsel-linux-uclibc-gcc -c -Os -pipe -mips32
> -mtune=mips32 -funit-at-a-time -fhonour-copts" LD=mipsel-linux-uclibc-ld
> NM=mipsel-linux-uclibc-nm CC="mipsel-linux-uclibc-gcc"
> GCC="mipsel-linux-uclibc-gcc" CXX="mipsel-linux-uclibc-g++"
> RANLIB=mipsel-linux-uclibc-ranlib STRIP=mipsel-linux-uclibc-strip
> OBJCOPY=mipsel-linux-uclibc-objcopy OBJDUMP=mipsel-linux-uclibc-objdump
> SIZE=mipsel-linux-uclibc-size CROSS="mipsel-linux-uclibc-" ARCH="mipsel" ;
> make[4]: Entering directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld'
> make[4]: *** No targets specified and no makefile found.  Stop.
> make[4]: Leaving directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld'
> make[3]: ***
> [/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/build_dir/mipsel/helloworld/.built]
> Error 2
> make[3]: Leaving directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/package/helloworld'
> make[2]: *** [package/helloworld/compile] Error 2
> make[2]: Leaving directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686'
> make[1]: ***
> [/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686/staging_dir/mipsel/stamp/.package_compile]
> Error 2
> make[1]: Leaving directory
> `/home/uderman/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686'
> make: *** [world] Error 2
>
>
>
> I have this helloworld folder on the package directory. The scr dir
> contains my helloworld.c:
>
> uder...@uderman:~/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686$ ls
> ./package/helloworld/
> Makefile  src
>
> Here is my makefile. It is almost a copy from the first tutorial I posted
> above:
>
>
> uder...@uderman:~/OpenWRT/OpenWrt-SDK-brcm-2.4-for-Linux-i686$ cat
> ./package/helloworld/Makefile
> ##############################################
> # OpenWrt Makefile for helloworld program
> #
> #
> # Most of the variables used here are defined in
> # the include directives below. We just need to
> # specify a basic description of the package,
> # where to build our program, where to find
> # the source files, and where to install the
> # compiled program on the router.
> #
> # Be very careful of spacing in this file.
> # Indents should be tabs, not spaces, and
> # there should be no trailing whitespace in
> # lines that are not commented.
> #
> ##############################################
>
> include $(TOPDIR)/rules.mk
>
> # Name and release number of this package
> PKG_NAME:=helloworld
> PKG_RELEASE:=1
>
>
> # This specifies the directory where we're going to build the program.
> # The root build directory, $(BUILD_DIR), is by default the build_mipsel
> # directory in your OpenWrt SDK directory
> PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
>
>
> include $(INCLUDE_DIR)/package.mk
>
> # Specify package information for this program.
> # The variables defined here should be self explanatory.
> # If you are running Kamikaze, delete the DESCRIPTION
> # variable below and uncomment the Kamikaze define
> # directive for the description below
> define Package/helloworld
>     SECTION:=utils
>     CATEGORY:=Utilities
>     TITLE:=Helloworld -- prints a snarky message
> endef
>
>
> # Uncomment portion below for Kamikaze and delete DESCRIPTION variable
> above
> define Package/helloworld/description
>     If you can't figure out what this program does, you're probably
>     brain-dead and need immediate medical attention.
> endef
>
>
>
> # Specify what needs to be done to prepare for building the package.
> # In our case, we need to copy the source files to the build directory.
> # This is NOT the default.  The default uses the PKG_SOURCE_URL and the
> # PKG_SOURCE which is not defined here to download the source from the web.
> # In order to just build a simple program that we have just written, it is
> # much easier to do it this way.
> define Build/Prepare
>     mkdir -p $(PKG_BUILD_DIR)
>     $(CP) ./src/* $(PKG_BUILD_DIR)/
> endef
>
>
> # We do not need to define Build/Configure or Build/Compile directives
> # The defaults are appropriate for compiling a simple program such as this
> one
>
>
> # Specify where and how to install the program. Since we only have one
> file,
> # the helloworld executable, install it by copying it to the /bin directory
> on
> # the router. The $(1) variable represents the root directory on the router
> running
> # OpenWrt. The $(INSTALL_DIR) variable contains a command to prepare the
> install
> # directory if it does not already exist.  Likewise $(INSTALL_BIN) contains
> the
> # command to copy the binary file from its current location (in our case
> the build
> # directory) to the install directory.
> define Package/helloworld/install
>     $(INSTALL_DIR) $(1)/bin
>     $(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/bin/
> endef
>
>
> # This line executes the necessary commands to compile our program.
> # The above define directives specify all the information needed, but this
> # line calls BuildPackage which in turn actually uses this information to
> # build a package.
> $(eval $(call BuildPackage,helloworld))
>
>
> Thank you!
>
> []´s,
>
> - Uderman
> http://www.temadigital.com.br/
>
>
_______________________________________________
openwrt-users mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-users

Reply via email to