aboutsummaryrefslogtreecommitdiff
path: root/scripts/create_ipkgs
blob: 3b9b8af39362c30e0973b43a81167047a4f79819 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/sh

# this script is very *alpha* so be gentle...

# change these lines to your arch and maintainer name
ARCH="avr32"
PACK_MAINTAINER="John Voltz <john.voltz@gmail.com>"

BUILDROOT_DIR=`pwd`

echo "Creating ipkgs from your build directory..."
echo "Please be patient, as this can take a long time.
			"

# create the ipkg directories
mkdir -p ${BUILDROOT_DIR}/ipkg-temp
mkdir -p ${BUILDROOT_DIR}/ipkg-out

for PACKAGE in `ls -d ./build_*/*`; do
	
	# extract some info
	NAME_WITHOUT_VER=${PACKAGE%-*}
	VERSION=${PACKAGE#${NAME_WITHOUT_VER}-}
	NAME_WITHOUT_DIR=${NAME_WITHOUT_VER#*/*/}
	CLEAN_NAME=${NAME_WITHOUT_DIR//_/-}

	# clean out the temp directory
	rm -rf ${BUILDROOT_DIR}/ipkg-temp/*

	# install the package to temp directory
	cd ${PACKAGE}
	echo "Installing ${NAME_WITHOUT_DIR} to ./ipkg-temp"
	make DESTDIR=${BUILDROOT_DIR}/ipkg-temp DSTROOT=${BUILDROOT_DIR}/ipkg-temp install &> /dev/null 

	# create the control file
	cd ${BUILDROOT_DIR}
	mkdir ${BUILDROOT_DIR}/ipkg-temp/CONTROL

	# find it's corresponding buildroot package directory 
	PACK_NAME=`find ./package -path './package/config' -prune -o -name ${NAME_WITHOUT_DIR}`
	PACK_NAME=${PACK_NAME%./package/config}
	PACK_NAME=${PACK_NAME#./package/config}
	PACK_NAME=`echo -n ${PACK_NAME}`

	# there must be an better way to extract the description and 
	# dependencies from the Config.in and *.mk file. 
	# Haven't figured it out just yet.
	CONF_FILE=`cat ${PACK_NAME}/Config.in`
	#MAKE_FILE=`cat ${PACK_NAME}/*.mk`
	HELP_STR=${CONF_FILE#*help}
	HELP_STR=${HELP_STR%%comment*}
	HELP_STR=${HELP_STR%%choice*}
	HELP_STR=${HELP_STR%%depends*}
	HELP_STR=${HELP_STR%%http*}
	HELP_STR=`echo -n ${HELP_STR}`

	echo ${HELP_STR}

	if [ "${PACK_NAME}" != "" ]; then
		echo "Creating ipkg of: ${PACKAGE}"

cat > ${BUILDROOT_DIR}/ipkg-temp/CONTROL/control <<EOF
Package: ${CLEAN_NAME}
Priority: optional
Version: ${VERSION}
Architecture: ${ARCH}
Maintainer: ${PACK_MAINTAINER}
Depends: uclibc
Description: ${HELP_STR}
EOF

		# build the package
		package/ipkg/ipkg-build ${BUILDROOT_DIR}/ipkg-temp ${BUILDROOT_DIR}/ipkg-out

	fi

	echo "Complete.
					"

done

echo "ipkg builds are finished."