来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

编译打包和其他
回复
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#1

帖子 ljj_jjl2008 » 2012-06-18 17:21

在研究怎么实现make/make install。
学了很久,实在是学不会autoconfg和cmake的用法,一生气,手动写了一个固定的makefile(这个没有cmake,也没有./congigure),和一个install脚本。本机测试已经通过。make命令:
make
sudo make -e INSTDIR=<安装目录>
现在把整理以后的目录结构,makefile、install脚本列示出来,请懂这个的帮忙看看,特别是Arch用户。
另外,请Arch用户看看,这个Makefile能不能用于PKGBUILD,如果能,PKGBUILD怎么写?如果不能,怎么修改才能用于Arch?
另另外,请“贱兔”用户也看看,这个Makefile能不能用于“贱兔”

代码: 全选

.
├── bin (存放编译结果)
├── etc (配置文件目录)
├── share(共享文件)
│   ├── iconcache
│   ├── icons
│   ├── pics
│   └── weather-icon
├── shell(脚本)
├── src(源码)
└── xsessions(xsessions文件)
工程跟目录下面,有3个文件:install、 Makefile、 readme.txt。

代码: 全选

TARGET = icon-de
INC0 = -lX11
INC1 = -lImlib2 -lXmu
INC2 = `pkg-config --cflags --libs glib-2.0`
CXX = g++
icon-wharf:./bin/icon-wharf
	$(CXX) -o ./bin/icon-wharf ./src/icon-wharf.c  $(INC0)
	$(CXX) -o ./bin/iconrun1 ./src/iconrun1.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/iconrun2 ./src/iconrun2.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/iconrun3 ./src/iconrun3.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-bord ./src/icon-bord.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/iconrun4 ./src/iconrun4.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-clock ./src/icon-clock.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-dock ./src/icon-dock.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-panel ./src/icon-panel.c  $(INC0) $(INC2) -lXft
	$(CXX) -o ./bin/iconweather ./src/iconweather.c $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-desk ./src/icon-desk.c -lXinerama -lXft  -lX11 -lImlib2 -lXmu  `pkg-config --cflags --libs glib-2.0` `giblib-config --cflags --libs` -lcurl -lpng -lXcomposite -lXdamage -lXfixes -lXrender  -lm 
	$(CXX) -o ./bin/icon-trans ./src/icon-trans.c `pkg-config --cflags --libs xcomposite xfixes xdamage xrender glib-2.0`
	$(CXX) -o ./bin/icon-wmvm ./src/icon-wmvm.c $(INC0) $(INC2)
	$(CXX) -o ./bin/icon-wmcl ./src/icon-wmcl.c  $(INC0) $(INC1) $(INC2)

clean:./bin/icon-wharf
	-rm ./bin/*

INSTDIR = /home/lijianjun/icon_de_make/make

.PHONY: install
install:
	./install  $(shell pwd) $(INSTDIR)
	
.PHONY: uninstall
uninstall:
	-rm -rf $(INSTDIR)/etc/icon-de/*
	-rm -rf $(INSTDIR)/etc/icon-de
	-rm -rf $(INSTDIR)/usr/share/icon-DE/*
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-bord
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-clock
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-desk
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-dock
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-panel
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-trans
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-wharf
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-wmcl
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-wmvm
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun1
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun2
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun3
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun4
	-rm -rf $(INSTDIR)/usr/bin/bin/iconweather
	-rm -rf $(INSTDIR)/usr/bin/shell/icon_de
	-rm -rf $(INSTDIR)/usr/bin/shell/icon_de_init
	-rm -rf $(INSTDIR)/usr/bin/shell/select_wm
	-rm -f $(INSTDIR)/usr/share/xsessions/icon-DE.desktop
	-rm -f /usr/share/kde4/apps/kdm/sessions/icon-DE.desktop
	-rm -f /usr/share/apps/kdm/sessions/icon-DE.desktop
	-rm -rf ~/.icon-DE/*
	-rm -rf ~/.icon-DE
	-rm -f ~/icon_de_install
	-rm -f ~/icon_de_init_log.txt
[bash]
#!/bin/bash
if [ ! -d "$2/usr/" ] ; then
mkdir $2/usr
fi
if [ ! -d "$2/usr/bin/" ] ; then
mkdir $2/usr/bin
fi
if [ ! -d "$2/usr/" ] ; then
mkdir $2/usr
fi
if [ ! -d "$2/usr/share/" ] ; then
mkdir $2/usr/share
fi
if [ ! -d "$2/usr/share/xsessions/" ] ; then
mkdir $2/usr/share/xsessions
fi
if [ ! -d "$2/usr/share/icon-DE/" ] ; then
mkdir $2/usr/share/icon-DE
fi
if [ ! -d "$2/usr/share/icon-DE/fonts/" ] ; then
mkdir $2/usr/share/icon-DE/fonts
fi
if [ ! -d "$2/usr/share/icon-DE/src/" ] ; then
mkdir $2/usr/share/icon-DE/src
fi
if [ ! -d "$2/etc/" ] ; then
mkdir $2/etc
fi
if [ ! -d "$2/etc/icon-de/" ] ; then
mkdir $2/etc/icon-de
fi
cp $1/bin/* $2/usr/bin/ -a
cp $1/shell/* $2/usr/bin/ -a
cp $1/xsessions/icon-DE.desktop $2/usr/share/xsessions
chown root $2/usr/share/xsessions/icon-DE.desktop
cp $1/etc/* $2/etc/icon-de/
cp -a $1/share/* $2/usr/share/icon-DE/ -rf
cp -a $1/src/* $2/usr/share/icon-DE/src/
if [ -f /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc ] ; then
cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc $2/usr/share/icon-DE/fonts/Vera.ttf
fi
if [ -f /usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc ] ; then
cp /usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc $2/usr/share/icon-DE/fonts/Vera.ttf
fi
if [ ! -f ~/.icon-DE/wharf.rc ] ; then
mkdir ~/.icon-DE
mkdir ~/.icon-DE/fonts
cp $2/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc ~/.icon-DE/fonts/Vera.ttf
cp -a $2/usr/share/icon-DE/* ~/.icon-DE/
cp -a $2/etc/icon-de/* ~/.icon-DE/
chown `who am i| awk '{print $2}'`:`id \`who am i| awk '{print $2}'\` -grn` ~/.icon-DE
chown -R `who am i| awk '{print $2}'`:`id \`who am i| awk '{print $2}'\` -grn` ~/.icon-DE/*
fi
if [ -f ~/.icon-DE/weather-icon/晴.png ] ; then
rm -rf ~/.icon-DE/weather-icon/*.png
cp -a $2/usr/share/icon-DE//weather-icon/* ~/.icon-DE/weather-icon/
chown `who am i| awk '{print $2}'`:`id \`who am i| awk '{print $2}'\` -grn` ~/.icon-DE/weather-icon
chown -R `who am i| awk '{print $2}'`:`id \`who am i| awk '{print $2}'\` -grn` ~/.icon-DE/weather-icon/*
fi
if [ -e $2/usr/bin/kdm ] ; then
if [ -d /usr/share/kde4/apps/kdm/sessions/ ] ; then
cp $2/usr/share/xsessions/icon-DE.desktop /usr/share/kde4/apps/kdm/sessions/
fi
if [ -d /usr/share/apps/kdm/sessions/ ] ; then
cp $2/usr/share/xsessions/icon-DE.desktop /usr/share/apps/kdm/sessions/
fi
fi
if [ ! -f ~/.icon-DE/icon-de.rc ] ; then
cp -a $2/etc/icon-de/icon-de.rc ~/.icon-DE/icon-de.rc
chown `who am i| awk '{print $2}'`:`id \`who am i| awk '{print $2}'\` -grn` ~/.icon-DE
chown -R `who am i| awk '{print $2}'`:`id \`who am i| awk '{print $2}'\` -grn` ~/.icon-DE/*
fi
echo "Please Run Command: icon_de_init"
[/bash]

关键是makefile文件里面这一句:

代码: 全选

.PHONY: install
install:
	./install  $(shell pwd) $(INSTDIR)
这么写行么?这么写如果提交到Arch的AUR、或者其他带自动编译功能的站点,编译能通过么?
这是所有的软件源码:
icon_de_make.tar.gz
(806.04 KiB) 已下载 128 次
jtshs256
帖子: 22323
注册时间: 2010-07-19 21:41
系统: OS X

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#2

帖子 jtshs256 » 2012-06-18 17:23

ebuild 只是调些 portage 带的写好的函数,PKGBUILD 暴力些,一个能用个个能用
躺平
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#3

帖子 枫叶饭团 » 2012-06-18 17:24

arch用户躺枪,pkgbuild随意写了,反正也是一shell脚本而已
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#4

帖子 ljj_jjl2008 » 2012-06-18 17:58

哎,楼上两位明显是高手呀。
可是,你们不正面回答问题,我好郁闷。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#5

帖子 枫叶饭团 » 2012-06-18 19:05

在build() {}写上make和以及后面文件要移动到的位置就差不多行了吧
头像
sgsdxzy
帖子: 430
注册时间: 2008-07-19 11:14

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#6

帖子 sgsdxzy » 2012-06-18 21:37

这是一个初步的PKBUILD

代码: 全选

# Maintainer: 
# Author: ljj_jjl2008 
pkgname=icon-de
pkgver=1.1.1
pkgrel=1
pkgdesc="A new desktop environment featuring icons and window manager emulators"
arch=("i686" "x86_64")
url="http://sourceforge.net/projects/icon-de/"
license=('GPL')
depends=('libx11' 'libxmu' 'glib2' 'libxcomposite' 'libxfixes' 'libxdamage' 'libxrender' 'libxinerama' 'libxft' 'imlib2' 'curl' 'libpng' 'giblib')
source=($pkgname-$pkgver.tar.gz::http://forum.ubuntu.org.cn/download/file.php?id=158815)
md5sums=('c5cfd9ce6e340d41e4dfe199c442bb5c')

build() {
  cd "$srcdir/icon_de_make"
  make
}


package() {
  cd "$srcdir/icon_de_make"
  ./install
}

# vim:set ts=2 sw=2 et:
不过还是有几个问题:
1、提供的源代码包太杂,/bin可以不要。
2、arch下freetype.h在/usr/include/freetype2/freetype而非/usr/include/freetype,而这个问题是arch本身的,因为freetype.h是间接包含的,不能直接通过patch修正。解决办法可以考虑让用户自己在编译前

代码: 全选

ln -s /usr/include/freetype2/freetype /usr/include/freetype
由于makepkg是以用户权限执行的,不能在脚本里面做这一步。或许可以把整个头文件库复制一份后用-I,也可能要向arch报bug。
3、我这里编译一堆warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings],不知是否可以考虑修正下。
4、.install把东西安装到了/home/lijianjun/icon_de_make/make,这个显然不行……应该在打包时安装到${pkgdir},把${pkgdir}当成目标系统的/
5、好像在打包时有在~下的操作,是创建配置文件等。这一:只能作用于执行打包命令的用户,二:在~下操作很不安全,有悖沙箱原则,甚至可能因安全性被质疑而从AUR中删除。请考虑在程序运行时在运行的用户的~下创建配置文件。
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#7

帖子 YeLee » 2012-06-18 21:40

Gentoo,不叫贱兔,请无视256跟兔嫂的叫法。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#8

帖子 枫叶饭团 » 2012-06-18 21:44

YeLee 写了:Gentoo,不叫贱兔,请无视256跟兔嫂的叫法。
贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔
头像
sgsdxzy
帖子: 430
注册时间: 2008-07-19 11:14

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#9

帖子 sgsdxzy » 2012-06-18 21:49

gentoo的话我换了新电脑,目前只装了arch,等我装上gentoo后看看
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#10

帖子 YeLee » 2012-06-18 21:57

枫叶饭团 写了:
YeLee 写了:Gentoo,不叫贱兔,请无视256跟兔嫂的叫法。
贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔贱兔
真贱。 :em04 :em04 :em04
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
只是说
帖子: 1140
注册时间: 2012-03-12 22:44
系统: 贱兔
来自: 株洲

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#11

帖子 只是说 » 2012-06-18 22:25

:em06 看不懂,飘过。等待高手来。
我的博客
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#12

帖子 ljj_jjl2008 » 2012-06-19 16:05

再次呼唤高手:改了,看看这个!是不是合格了。
不过还是有几个问题:
1、提供的源代码包太杂,/bin可以不要。
2、arch下freetype.h在/usr/include/freetype2/freetype而非/usr/include/freetype,而这个问题是arch本身的,因为freetype.h是间接包含的,不能直接通过patch修正。解决办法可以考虑让用户自己在编译前
代码:
ln -s /usr/include/freetype2/freetype /usr/include/freetype

由于makepkg是以用户权限执行的,不能在脚本里面做这一步。或许可以把整个头文件库复制一份后用-I,也可能要向arch报bug。
3、我这里编译一堆warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings],不知是否可以考虑修正下。
4、.install把东西安装到了/home/lijianjun/icon_de_make/make,这个显然不行……应该在打包时安装到${pkgdir},把${pkgdir}当成目标系统的/
5、好像在打包时有在~下的操作,是创建配置文件等。这一:只能作用于执行打包命令的用户,二:在~下操作很不安全,有悖沙箱原则,甚至可能因安全性被质疑而从AUR中删除。请考虑在程序运行时在运行的用户的~下创建配置文件。
1,就是这么复杂,没法精简了。
2,不懂,我暂时没法改。
3,已经修正。这个的原因是:很多源代码,是c语言的,另一部分,则是c++的。然后用g++编译,c语言的部分就会提示错误。过去我没有在意。现在改好了,按照c++的规范,重新写了一遍代码。
4,干脆把install删除了,一起写进了makefile文件。只是makefile里面不方便写if语句,所以无法区分Arch和ubuntu,只能都写上,然后有的语句会提示错误。
5,这些都删除了。现在由“INSTDIR”变量决定安装路径,默认安装到跟目录“/”。安装到其他目录需要:make install -e INSTDIR=<新路径/>

代码: 全选

TARGET = icon-de
INC0 = -lX11
INC1 = -lImlib2 -lXmu
INC2 = `pkg-config --cflags --libs glib-2.0`
CXX = g++
icon-wharf:./bin/icon-wharf
	$(CXX) -o ./bin/icon-wharf ./src/icon-wharf.c  $(INC0)
	$(CXX) -o ./bin/iconrun1 ./src/iconrun1.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/iconrun2 ./src/iconrun2.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/iconrun3 ./src/iconrun3.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-bord ./src/icon-bord.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/iconrun4 ./src/iconrun4.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-clock ./src/icon-clock.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-dock ./src/icon-dock.c  $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-panel ./src/icon-panel.c  $(INC0) $(INC2) -lXft
	$(CXX) -o ./bin/iconweather ./src/iconweather.c $(INC0) $(INC1) $(INC2)
	$(CXX) -o ./bin/icon-desk ./src/icon-desk.c -lXinerama -lXft  -lX11 -lImlib2 -lXmu  `pkg-config --cflags --libs glib-2.0` `giblib-config --cflags --libs` -lcurl -lpng -lXcomposite -lXdamage -lXfixes -lXrender  -lm 
	$(CXX) -o ./bin/icon-trans ./src/icon-trans.c `pkg-config --cflags --libs xcomposite xfixes xdamage xrender glib-2.0`
	$(CXX) -o ./bin/icon-wmvm ./src/icon-wmvm.c $(INC0) $(INC2)
	$(CXX) -o ./bin/icon-wmcl ./src/icon-wmcl.c  $(INC0) $(INC1) $(INC2)

clean:./bin/icon-wharf
	-rm ./bin/*

INSTDIR = /

.PHONY: install
install:
	-mkdir $(INSTDIR)usr
	-mkdir $(INSTDIR)usr/bin
	-mkdir $(INSTDIR)usr/share
	-mkdir $(INSTDIR)usr/share/xsessions
	-mkdir $(INSTDIR)usr/share/icon-DE
	-mkdir $(INSTDIR)usr/share/icon-DE/fonts
	-mkdir $(INSTDIR)usr/share/icon-DE/src
	-mkdir $(INSTDIR)etc
	-mkdir $(INSTDIR)etc/icon-de
	-cp -f ./bin/* $(INSTDIR)usr/bin/
	-cp -f ./shell/* $(INSTDIR)usr/bin/
	-cp -f ./xsessions/icon-DE.desktop $(INSTDIR)usr/share/xsessions
	-chown root $(INSTDIR)usr/share/xsessions/icon-DE.desktop
	-cp -f ./etc/* $(INSTDIR)etc/icon-de/ 
	-cp -af ./share/* $(INSTDIR)usr/share/icon-DE/
	-cp -af ./src/* $(INSTDIR)usr/share/icon-DE/src/
	-cp /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc $(INSTDIR)usr/share/icon-DE/fonts/Vera.ttf
	-cp /usr/share/fonts/wenquanyi/wqy-zenhei/wqy-zenhei.ttc $(INSTDIR)usr/share/icon-DE/fonts/Vera.ttf
	-cp $(INSTDIR)usr/share/xsessions/icon-DE.desktop /usr/share/kde4/apps/kdm/sessions/
	-cp $(INSTDIR)usr/share/xsessions/icon-DE.desktop /usr/share/apps/kdm/sessions/
	echo "Please Run Command: icon_de_init"
	
.PHONY: uninstall
uninstall:
	-rm -rf $(INSTDIR)/etc/icon-de/*
	-rm -rf $(INSTDIR)/etc/icon-de
	-rm -rf $(INSTDIR)/usr/share/icon-DE/*
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-bord
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-clock
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-desk
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-dock
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-panel
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-trans
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-wharf
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-wmcl
	-rm -rf $(INSTDIR)/usr/bin/bin/icon-wmvm
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun1
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun2
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun3
	-rm -rf $(INSTDIR)/usr/bin/bin/iconrun4
	-rm -rf $(INSTDIR)/usr/bin/bin/iconweather
	-rm -rf $(INSTDIR)/usr/bin/shell/icon_de
	-rm -rf $(INSTDIR)/usr/bin/shell/icon_de_init
	-rm -rf $(INSTDIR)/usr/bin/shell/select_wm
	-rm -f $(INSTDIR)/usr/share/xsessions/icon-DE.desktop
	-rm -f /usr/share/kde4/apps/kdm/sessions/icon-DE.desktop
	-rm -f /usr/share/apps/kdm/sessions/icon-DE.desktop
我感觉PKBUILD这次可能需要这么写:

代码: 全选

# Maintainer: 
# Author: ljj_jjl2008 
pkgname=icon-de
pkgver=1.1.2
pkgrel=1
pkgdesc="A new desktop environment featuring icons and window manager emulators"
arch=("i686" "x86_64")
url="http://sourceforge.net/projects/icon-de/"
license=('GPL')
depends=('libx11' 'libxmu' 'glib2' 'libxcomposite' 'libxfixes' 'libxdamage' 'libxrender' 'libxinerama' 'libxft' 'imlib2' 'curl' 'libpng' 'giblib')
source=($pkgname-$pkgver.tar.gz::http://forum.ubuntu.org.cn/download/file.php?id=158856)
sha1sums=('eccbd74b7c9919ab41927d92291c6953ce7e60dc')


build() {
  cd "$srcdir"
  make
}


package() {
  cd "$srcdir"
  make install -e INSTDIR=$pkgdir/
}
附件
icon_de_make.tar.gz
(805.59 KiB) 已下载 91 次
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#13

帖子 ljj_jjl2008 » 2012-06-19 17:10

已经在虚拟机环境中测试成功!! :em11 :em11
不过这个包发现了一个小bug,等修正后,马上就可以发布1.1.2版本了。
头像
sgsdxzy
帖子: 430
注册时间: 2008-07-19 11:14

Re: 来寻求帮助了,关于makefile文件的。特别是Arch用户,和“贱兔”用户,请进。

#14

帖子 sgsdxzy » 2012-06-19 18:00

ljj_jjl2008 写了:已经在虚拟机环境中测试成功!! :em11 :em11
不过这个包发现了一个小bug,等修正后,马上就可以发布1.1.2版本了。
祝贺LZ! :em11
其实PKGBUILD 就是一个shell脚本嘛……ebuild则要难写,因为每一步都是模拟命令,对于这种不是./configure-make-make install的软件包比较麻烦。

PS:还有几位歪楼真厉害 :em04
回复