Модератор: Модераторы разделов
IMB
Сообщения: 2567
ОС: Debian
Сообщение
IMB » 25.05.2010 10:26
Доброго дня!
Makefile
Код: Выделить всё
ROOTDIR = ../../../../..
TARGET = xdm_2a_lib
REL_LIB = $(TARGET).a
include $(ROOTDIR)/Rules.make
XDC_PATH = $(CODEC_INSTALL_DIR)/packages;$(CE_INSTALL_DIR)/packages;$(LINK_INSTALL_DIR)/packages;$(XDAIS_INSTALL_DIR)/packages;$(CMEM_INSTALL_DIR)/packages
INCLUDES += -I $(LINUXKERNEL_INSTALL_DIR)/include -I./
CC = $(MVTOOL_PREFIX)gcc $(INCLUDES) $(C_FLAGS) -c
AR = $(MVTOOL_PREFIX)ar
C_FLAGS += -Wall -g
#C_FLAGS += -DAEW_CHECK_TIME_INTERVAL
AR_FLAGS += -r
SOURCES = $(wildcard *.c)
HEADERS = $(wildcard *.h)
REL_OBJ = $(SOURCES:%.c=%.o)
all: $(REL_LIB)
$(REL_LIB): $(REL_OBJ) $(HEADERS)
$(AR) $(AR_FLAGS) $(REL_LIB) $(REL_OBJ)
clean::
-rm -rf $(REL_OBJ)
ls
ae_appro.h iae.h ialg.h Makefile xdas.h xdm.h
awb_appro.h iaewb.h iawb.h std.h xdm_2a_lib.a
xdm_2a_lib.a
$ file xdm_2a_lib.a
xdm_2a_lib.a: current ar archive
$ ar t xdm_2a_lib.a
ae_ti.o
awb_ti.o
ae_appro.o
awb_appro.o
Откуда берутся объектные файлы в данном случае?
Спасибо.
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska » 25.05.2010 10:28
IMB писал(а): ↑ 25.05.2010 10:26
Откуда берутся объектные файлы?
make -p -f /dev/null
IMB
Сообщения: 2567
ОС: Debian
Сообщение
IMB » 25.05.2010 10:44
Это намёк на то, что объектные файлы получают из, например, C-файлов или интересует вывод указаной команды?
Если первое, то я специально привёл содержимое директории.
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Сообщение
sash-kan » 25.05.2010 11:55
IMB писал(а): ↑ 25.05.2010 10:26
Откуда берутся объектные файлы в данном случае?
в каком смысле «откуда»?
из каких файлов? из файлов с суффиксом «.c»
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Сообщение
sash-kan » 25.05.2010 12:06
или непонятно, каким образом make догадывается, _как_ из *.c получить *.o?
прочитайте хотя бы это для начала:
$ info make 'make Deduces'
upd. да и вообще info make — весьма полезный для освоения программистом документ.
IMB
Сообщения: 2567
ОС: Debian
Сообщение
IMB » 25.05.2010 12:07
sash-kan писал(а): ↑ 25.05.2010 11:55
IMB писал(а): ↑ 25.05.2010 10:26
Откуда берутся объектные файлы в данном случае?
в каком смысле «откуда»?
из каких файлов? из файлов с суффиксом «.c»
Хорошо, из каких C-файлов если в данной директории их нет?
deadhead
Сообщения: 1913
Статус: zzz..z
Сообщение
deadhead » 25.05.2010 12:10
IMB писал(а): ↑ 25.05.2010 12:07
Хорошо, из каких C-файлов если в данной директории их нет?
Может быть из этих
[x] close
IMB
Сообщения: 2567
ОС: Debian
Сообщение
IMB » 25.05.2010 12:15
Нет. Rules.make содержит только определение общих переменных, такие как CODEC_INSTALL_DIR, CE_INSTALL_DIR и т.д.
Полный листинг директории с исходниками
Код: Выделить всё
$ ls -FR .
.:
aew.h* ctrl.c* font_util.c* NoiseFiltStr.h* ti_fd/
aew_xdm/ ctrl.h* font_util.h* NoiseFiltThr.h* TI_Logo_160_54.c*
appro_aew.c* display.c* gamma1.txt* ptz.c* TI_Logo_76_26.c*
appro_aew.c.bak* display.h* gamma2.txt* ptz.h* ti_nf/
appro_aew.h* dm355_h3a.c* ijpegenc.h* ring_buffer.h* ti_osd/
ascii_1540_40.c* dm355_h3a.c.bak* image_tool/ simplewidget/ ti_vs/
ascii_924_20.c* dm355_h3a.h* imp4venc.h* speech.c* ui.c*
audioplay.c* encode.h* main.c* speech.h* ui.h*
audioplay.h* encode_stream.cfg* main.c.bak* stream/ video1.c*
capture.c* encode_stream.txt* Makefile* swosdThr.c* video.h*
capture.h* face_detect.c* motion_detect.c* swosdThr.h* writer.c*
ccdc_mt9p031.h* face_detect.h* motion_detect.h* ti_2a/ writer.h*
ccdc_mt9p031.h.bak* font_maker/ nf_table/ ti_aew.c*
./aew_xdm:
Appro_aew_cal.h* Appro_aew_xdm.a* Appro_aew_xdm.h*
Appro_aew_control.a* Appro_aew_xdm.c* Makefile*
Appro_aew_control.h* Appro_aew_xdm.c.bak* xdm_2a_lib/
./aew_xdm/xdm_2a_lib:
ae_appro.h* iae.h* ialg.h* Makefile* xdas.h* xdm.h*
awb_appro.h* iaewb.h* iawb.h* std.h* xdm_2a_lib.a*
./font_maker:
font_maker.c* font_maker.h* Makefile*
./image_tool:
ae_setup.c* cmd_util.c* image_setting.c* image_tool.h* inifile.h* shm_util.h*
awb_setup.c* cmd_util.h* image_setting.h* image_util.a* Makefile*
cmd_def.h* dm355_setup.c* image_tool.c* inifile.c* shm_util.c*
./nf_table:
nsf_str_table_IPNC_3MP.txt* nsf_thr_table_IPNC_3MP.txt*
nsf_str_table_ISO3200_normal.txt* nsf_thr_table_ISO3200_normal.txt*
nsf_str_table_ISO400_normal.txt* nsf_thr_table_ISO400_normal.txt*
./simplewidget:
font.c* gfx.c* Makefile* _simplescreen.h* simplewidgetd.a*
font_ext.h* _gfx.h* png.c* _simpletext.h* simplewidget.doxygen*
_font.h* jpeg.c* _png.h* simplewidget.a* simplewidget.h*
freetype2/ _jpeg.h* _simplebutton.h* simplewidget.c* _types.h*
./simplewidget/freetype2:
freetype/
./simplewidget/freetype2/freetype:
cache/ ftchapters.h* ftincrem.h* ftmoderr.h* ftstroke.h* fttypes.h* tttables.h*
config/ fterrdef.h* ftlist.h* ftoutln.h* ftsynth.h* ftwinfnt.h* tttags.h*
freetype.h* fterrors.h* ftlzw.h* ftpfr.h* ftsysio.h* ftxf86.h* ttunpat.h*
ftbbox.h* ftglyph.h* ftmac.h* ftrender.h* ftsysmem.h* internal/
ftbdf.h* ftgzip.h* ftmm.h* ftsizes.h* ftsystem.h* t1tables.h*
ftcache.h* ftimage.h* ftmodapi.h* ftsnames.h* fttrigon.h* ttnameid.h*
./simplewidget/freetype2/freetype/cache:
ftccache.h* ftccmap.h* ftcglyph.h* ftcimage.h* ftcmanag.h* ftcmru.h* ftcsbits.h*
./simplewidget/freetype2/freetype/config:
ftconfig.h* ftheader.h* ftmodule.h* ftoption.h* ftstdlib.h*
./simplewidget/freetype2/freetype/internal:
autohint.h* ftmemory.h* fttrace.h* sfnt.h* svpostnm.h* svwinfnt.h*
ftcalc.h* ftobjs.h* internal.h* svbdf.h* svpscmap.h* svxf86nm.h*
ftdebug.h* ftrfork.h* pcftypes.h* svgldict.h* svpsinfo.h* t1types.h*
ftdriver.h* ftserv.h* psaux.h* svmm.h* svsfnt.h* tttypes.h*
ftgloadr.h* ftstream.h* pshints.h* svpfr.h* svttcmap.h*
./stream:
cache_mng.c* gop_lock.c* Makefile* mem_mng.h* semaphore_util.h* stream.c.bak*
cache_mng.h* gop_lock.h* mem_mng.c* semaphore_util.c* stream.c* stream.h*
./ti_2a:
ae_ti.h* awb_ti.h* iae.h* iaewb.h* iawb.h* libti_2a.a*
./ti_fd:
eOkaoCom.a* eOkaoDt.a* eOkaoEo.a* eOkaoFr.a* eOkaoPt.a* eOkaoSmile.a* libfdetect_ti.a*
./ti_nf:
./ti_osd:
libosd_ti.a* sw_osd.h*
./ti_vs:
alg.h* ivs1.h* libvstab_ti.a* tistdtypes.h* vs_ti.h*
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Сообщение
sash-kan » 25.05.2010 12:39
ну, проинспектируйте все переменные. типа так:
Код: Выделить всё
inspect:
echo $(REL_LIB)
echo $(REL_OBJ)
echo $(HEADERS)
echo $(AR)
echo $(AR_FLAGS)
echo $(REL_LIB)
echo $(REL_OBJ)
echo $(SOURCES)
$ make inspect
(перед echo — табы)
IMB писал(а): ↑ 25.05.2010 12:15
Rules.make содержит только определение общих переменных, такие как CODEC_INSTALL_DIR, CE_INSTALL_DIR и т.д.
покажите для разнообразия.
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska » 25.05.2010 13:04
IMB писал(а): ↑ 25.05.2010 12:15
Полный листинг директории с исходниками
Если это точно каталог с исходниками, а не «грязный» каталог после экспериментов со сборкой, то это значит, что все эти *.a собраны вендором и поставляются в бинарном виде без исходников.
IMB
Сообщения: 2567
ОС: Debian
Сообщение
IMB » 25.05.2010 13:12
watashiwa_daredeska , Вы меня слегка опередили. Чуток покумекав и пообщавшись с коллегами я пришёл к аналогичному выводу.
Объясню почему меня так заинтересовало сборка *.a. Представленный каталог действительно является примером от производителя на основе которого нам рекомендовали изучить управление закрытым модулем. Мы приделали управление этим модулем, но результат его работы нас не устраивает. Было внесено ряд правок в исходники, но после сборки ничего не поменялось. Я решил пересобрать библиотеки и наткнулся на этот вопрос.
Всем спасибо, похоже вопрос можно считать закрытым.