LINUX.ORG.RU

поменять версию подпроекта в Makefile

 


0

1

Всем прывет!

Эт снова я с вопросом о Makefile

есть такой Makefile, который собираю командой `sudo make bindeb-pkg`

KERNELDIR := /lib/modules/`uname -r`/build

obj-m += src/soc/

all:
        $(MAKE) -C $(KERNELDIR) M=`pwd` modules
        $(shell INSTALL_MOD_DIR="debian/es8336-avs/lib/modules/`uname -r`/misc"; \
                for f in `find src/soc -name "*.ko"`; do \
                DIR="$${INSTALL_MOD_DIR}/`dirname $$f | sed -e 's#^src/##g'`"; \
                mkdir -p $${DIR}; cp "$$f" $${DIR}/; done)

bindeb-pkg:
        $(shell mkdir -p debian/tmp/lib debian/tmp/DEBIAN)
        $(shell echo "es8336-avs (`uname -r`-`git rev-list HEAD --count`) unstable; urgency=medium" > debian/changelog)
        $(shell echo >> debian/changelog)
        $(shell echo "  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>" >> debian/changelog)
        $(shell echo >> debian/changelog)
        $(shell echo " -- unknown <build@buildhost>  `date | awk '{printf(\"%s, %s %s %s %s +0300\", $$1, $$2, $$3, $$4, $$5);}'`" >> debian/changelog)
        $(shell echo >> debian/changelog)
        $(shell echo "es8336-avs-firmware (1) unstable; urgency=medium" >> debian/changelog)
        $(shell echo >> debian/changelog)
        $(shell echo "  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>" >> debian/changelog)
        $(shell echo >> debian/changelog)
        $(shell echo " -- unknown <build@buildhost>  `date | awk '{printf(\"%s, %s %s %s %s +0300\", $$1, $$2, $$3, $$4, $$5);}'`" >> debian/changelog)
        dpkg-buildpackage -b

install: all
        $(MAKE) INSTALL_MOD_DIR=misc -C $(KERNELDIR) M=`pwd` modules_install
        $(shell depmod `uname -r`)
        $(shell ./scripts/mkmodprobe.sh)
#       $(shell ./scripts/mksndconfigs.sh)
        $(shell cp -r ./firmware /lib/)

clean:
        $(MAKE) -C $(KERNELDIR) M=`pwd` clean

Описание проблемы: хочу в одном дереве создавать два проекта (для драйвера и фирмвари) и чтобы версия deb-файла с фирмварью отличалась от `uname -r` и была, скажем «1», а не 6.1.61. Так-то оба проекта собирабтся, но версию вирмварьного подпроекта никак не получается сменить.

Это вообще возможно? или нужно разбивать на два отдельных проекта в разных каталогах?

★★★★★

Последнее исправление: metawishmaster (всего исправлений: 4)

ужас какой.

$(shell)-то зачем?

date | awk ‘{printf("%s, %s %s %s %s +0300", $$1, $$2, $$3, $$4, $$5);}’

date +‘%a, %b %d %T %Z %z’

а по теме – не вижу у тебя никаких подпроектов. интуиция подсказывает, что тебе надо почитать про переменные make.

anonymous
()
Ответ на: комментарий от anonymous

спасибо, напомнили про фармат date :)
а «подпроект» - это условно :)
точнее - речь идет о созданее двух deb-пакетов, они-то созда.тся, но версию фирварьного не получается установить в «1»...
а так, тот Makefile собирает драйвер, а фирмварьные собирает еще при помощи двух файликов (если ни про кого не забыл):

sbauer@astra ~/devel/es8336-avs master$ cat ./debian/rules
#!/usr/bin/make -f
# ...

%:
        dh $@

override_dh_install:
        dh_install
        install firmware/intel/avs/skl/dsp_basefw.bin debian/es8336-avs-firmware/lib/firmware/intel/avs/skl/dsp_basefw.bin
        install firmware/intel/avs/hda-8086280b-tplg.bin debian/es8336-avs-firmware/lib/firmware/intel/avs/hda-8086280b-tplg.bin
        install firmware/intel/avs/hda-8086280b-tplg.conf debian/es8336-avs-firmware/lib/firmware/intel/avs/hda-8086280b-tplg.conf
        install firmware/intel/avs/es8336-tplg.bin debian/es8336-avs-firmware/lib/firmware/intel/avs/es8336-tplg.bin
        install firmware/intel/avs/es8336-tplg.conf debian/es8336-avs-firmware/lib/firmware/intel/avs/es8336-tplg.conf

# ...
$ cat debian/es8336-avs-firmware.install
#!/usr/bin/env dh-exec
firmware/intel/avs/skl/dsp_basefw.bin => /lib/firmware/intel/avs/skl/dsp_basefw.bin
firmware/intel/avs/hda-8086280b-tplg.bin => /lib/firmware/intel/avs/hda-8086280b-tplg.bin
firmware/intel/avs/hda-8086280b-tplg.conf => /lib/firmware/intel/avs/hda-8086280b-tplg.conf
firmware/intel/avs/es8336-tplg.bin => /lib/firmware/intel/avs/es8336-tplg.bin
firmware/intel/avs/es8336-tplg.conf => /lib/firmware/intel/avs/es8336-tplg.conf

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 2)
Ответ на: комментарий от metawishmaster

тут явно вопрос не про makefile, а про сборку пакетов под debian и/или debhelper.

в приведённых кусках makefile ничего особенно на эту тему нет.

версия пакета задаётся в поле Version в файле debian/control.

на этом мои познания в этой области заканчиваются.

anonymous
()
Ответ на: комментарий от aol

Больше слушай анонимусов.

да, пардон :))

но в debian/changelog с самого нечала было

es8336-avs (6.1.50-1-generic-29) unstable; urgency=medium

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- unknown <build@buildhost>  Tue, 14 Nov 2023 10:31:26 +0300

es8336-avs-firmware (1) unstable; urgency=medium

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- unknown <build@buildhost>  Tue, 14 Nov 2023 10:31:26 +0300


он в bindeb-pkg: формируется

metawishmaster ★★★★★
() автор топика
Последнее исправление: metawishmaster (всего исправлений: 1)