Compiling cdrkit

Hi All,

Very new to all this and any help is much appreciated. I am trying to add cdrkit. I am happy to contribute any documentation or package it up.

http://deb.debian.org/debian/pool/main/c/cdrkit/cdrkit_1.1.11.orig.tar.gz

If I download the source from debian and run make I get the error below (not in openwrt build).

-- Looking for include file sys/capability.h - not found
CMake Error at wodim/CMakeLists.txt:18 (MESSAGE):
Error: found a Linux system but no libcap header. Install libcap-dev.

To make it work I add the following CFLAGS and everything works

make CFLAGS=-I/usr/include

I am using the HelloWorld template and I have the following openwrt Makefile. I have used make EXTRA_CFLAGS="-I/usr/include" in the Build/Compile section but it does not seem to be picking up the flag and has the same error as above. Is this the correct way to set the CFLAGS.

Also it uses cmake so I added

include $(INCLUDE_DIR)/cmake.mk

Also I have left Install section blank. README says all I need to run make install. Is this the correct?

Makefile

include $(TOPDIR)/rules.mk

PKG_NAME:=cdrkit
PKG_VERSION:=1.1
PKG_RELEASE:=11

SOURCE_DIR:=/home/tom/openwrt/mysource/cdrkit-1.1.11

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

define Package/cdrkit
        SECTION:=dpart
        CATEGORY:=Dpart
        TITLE:=CDR KIT for genisoimage
endef

define Package/cdrkit/description
        For building ISO files
endef

define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
        cp -r $(SOURCE_DIR)/* $(PKG_BUILD_DIR)
        $(Build/Patch)
endef

define Build/Compile
        make EXTRA_CFLAGS="-I/usr/include"
endef

define Package/cdrkit/install
endef

$(eval $(call BuildPackage,cdrkit))

Directory listing of the package

drwxr-xr-x 5 tom tom   4096 Oct 18  2010 3rd-party
-rw-r--r-- 1 tom tom   2015 Jan  6  2008 ABOUT
-rw-r--r-- 1 tom tom 289049 Oct 18  2010 Changelog
-rw-r--r-- 1 tom tom    151 May 31  2007 CMakeLists.txt
-rw-r--r-- 1 tom tom  17921 Aug 19  2006 COPYING
drwxr-xr-x 8 tom tom   4096 Oct 18  2010 doc
-rw-r--r-- 1 tom tom   1522 Dec  4  2006 FAQ
-rw-r--r-- 1 tom tom   3222 Oct 26  2006 FORK
drwxr-xr-x 3 tom tom   4096 Oct 18  2010 genisoimage
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 icedax
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 include
-rw-r--r-- 1 tom tom   2690 May  3  2007 INSTALL
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 libedc
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 libhfs_iso
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 libparanoia
drwxr-xr-x 3 tom tom   4096 Oct 18  2010 librols
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 libunls
drwxr-xr-x 3 tom tom   4096 Oct 18  2010 libusal
-rw-r--r-- 1 tom tom   2299 May  6  2007 Makefile
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 misc
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 netscsid
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 readom
-rw-r--r-- 1 tom tom    109 Nov 22  2006 START
-rw-r--r-- 1 tom tom   2526 May  6  2007 TODO
-rw-r--r-- 1 tom tom      7 Oct 18  2010 VERSION
drwxr-xr-x 2 tom tom   4096 Oct 18  2010 wodim

Add depends libcap


define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
        cp -r $(SOURCE_DIR)/* $(PKG_BUILD_DIR)
        $(Build/Patch)
endef

This is done automatically. You don't need to define it..

define Build/Compile
        make EXTRA_CFLAGS="-I/usr/include"
endef

You'd be better off using TARGET_CFLAGS+="-I/usr/include" and removing the entire Build/Compile section

Example usage:

TARGET_CFLAGS += -D_GNU_SOURCE
TARGET_CXXFLAGS += -latomic
TARGET_LDFLAGS += -latomic

When you define those Build/xxxx, it overrides the default build environment configs. You should only do this if you need to (example: having to run something like an autogen script prior to running ./configure) Check out your ./include/package.mk for what is done by default

define Build/Prepare
	$(call Build/Prepare/Default)
	$(CONFIGURE_VARS) cargo install cbindgen
	cd $(PKG_BUILD_DIR) && $(CONFIGURE_VARS) ./autogen.sh
endef

Also, because you're using CMake, you probably will also want:

CMAKE_INSTALL:=1

1 Like

xorriso might be more actively supported than cdrkit.

Thanks for the help. That has moved me forward. Now just solving some other issues. Will update when complete with the instructions.

1 Like