[an error occurred while processing this directive]
Я уже несколько лет пользуюсь эксклюзивно Makefile'ом, а под Linux это тем более. Вот он (немного причесанный) (+)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено andrew_b 19 июня 2003 г. 11:43
В ответ на: а кто-либо использует Xilinx Flow без GUI (project navigatora)? отправлено yes 19 июня 2003 г. 10:52


Никакая критика не принимается! :)) Сможете сделать лучше - welcome!
Да, и все форматирование сейчас пропадет. :-(

Все это сейчас работает под Linux, поэтому на переменные WINE и SHUTUP_WINE можно не обращать внимания.

# -- Makefile start --

DESIGN_NAME := mydesign

# vhdl source files
SRC := ../source1.vhd \
../source2.vhd \
../source3.vhd \
../$(DESIGN_NAME).vhd

# variables to use Synplify
SYNPLIFY := synplify_pro
SYN_DIR := ../SYNWork
SYN_PRJ := $(SYN_DIR)/$(DESIGN_NAME).prj
SYN_FILES := $(SYN_DIR)/$(DESIGN_NAME).fse \
$(SYN_DIR)/$(DESIGN_NAME).ncf $(SYN_DIR)/$(DESIGN_NAME).srd \
$(SYN_DIR)/$(DESIGN_NAME).srm $(SYN_DIR)/$(DESIGN_NAME).srs \
$(SYN_DIR)/$(DESIGN_NAME).sxr $(SYN_DIR)/*.tlg

# variables to use Xilins under wine under Linux
WINE := wine --
SHUTUP_WINE := 2>/dev/null

# variables - filenames
EDF := $(SYN_DIR)/$(DESIGN_NAME).edf
UCF := $(DESIGN_NAME).ucf
NGD := $(DESIGN_NAME).ngd
NGA := $(DESIGN_NAME).nga
PCF := $(DESIGN_NAME).pcf
MAP := map.ncd
NCD := $(DESIGN_NAME).ncd
TWR := $(DESIGN_NAME).twr
BIT := $(DESIGN_NAME).bit

# variables - design options
PAR_DIR := $(DESIGN_NAME).dir
LOGS_DIR := $(DESIGN_NAME).logs
DEVICE := -p xcv812e-7-fg900
EFFORT_LEVEL := -ol 5
COVER := -cm speed -k 5
BITGEN_OPTIONS_FILE := bitgen.ut
PROG_DIR := prog
EXO := $(PROG_DIR)/$(DESIGN_NAME)00.exo $(PROG_DIR)/$(DESIGN_NAME)01.exo

.PHONY := all exo bit par map ngd edf syn sim clean clean-all

MDEPS := $(SYN_PRJ) $(SRC) $(UCF) $(NGO)

all: $(EXO)

exo $(EXO): $(BIT)
rm -f $(PROG_DIR)/*
$(WINE) promgen -p exo -x XC18V04 XC1704L -c 0xFF -w -o $(EXO) -u 0 $< $(SHUTUP_WINE)

bit $(BIT): $(MDEPS) $(BITGEN_OPTIONS_FILE) $(PCF) $(NCD)
$(WINE) trce -e 5 -skew -o $(TWR) $(NCD) $(PCF) $(SHUTUP_WINE)
$(WINE) bitgen -w $(NCD) -f $(BITGEN_OPTIONS_FILE) $@ $(PCF) $(SHUTUP_WINE)
rm -fR $(LOGS_DIR)
mkdir $(LOGS_DIR)
cp -f *.log $(LOGS_DIR)
cp -f $(SYN_DIR)/$(DESIGN_NAME).srr $(LOGS_DIR)
mv -f $(DESIGN_NAME).bld $(LOGS_DIR)
mv -f map.mrp $(LOGS_DIR)
mv -f $(DESIGN_NAME).par $(LOGS_DIR)
mv -f $(DESIGN_NAME).drc $(LOGS_DIR)
mv -f $(DESIGN_NAME).dly $(LOGS_DIR)
mv -f $(DESIGN_NAME).pad $(LOGS_DIR)
mv -f $(DESIGN_NAME).twr $(LOGS_DIR)
mv -f $(DESIGN_NAME).bgn $(LOGS_DIR)
mv -f $(DESIGN_NAME)_ngdbuild.nav $(LOGS_DIR)

par $(NCD): $(MDEPS) $(MAP) $(PCF)
rm -fr $(PAR_DIR)
$(WINE) par -w $(EFFORT_LEVEL) -n 0 -s 1 $(MAP) $(PAR_DIR) $(PCF) $(SHUTUP_WINE)
cp -f $(PAR_DIR)/*.ncd $@
cp -f $(PAR_DIR)/*.dly $(DESIGN_NAME).dly
cp -f $(PAR_DIR)/*.pad $(DESIGN_NAME).pad
cp -f $(PAR_DIR)/*.par $(DESIGN_NAME).par
cp -f $(PAR_DIR)/*.xpi $(DESIGN_NAME).xpi

map $(MAP) $(PCF): $(MDEPS) $(NGD)
$(WINE) map $(DEVICE) -pr b $(COVER) -o $(MAP) $(NGD) $(PCF) $(SHUTUP_WINE)

ngd $(NGD): $(MDEPS)
$(WINE) ngdbuild $(DEVICE) -uc $(UCF) -dd . $(EDF) $@ $(SHUTUP_WINE)

syn edf $(EDF): $(SYN_PRJ) $(SRC)
$(MAKE) clean
$(SYNPLIFY) -batch $<

sim: $(NCD)
$(WINE) ngdanno $(NCD) $(SHUTUP_WINE)
$(WINE) ngd2vhdl -aka -r -w -log $(DESIGN_NAME)_ngd.log -te $(DESIGN_NAME)_sim $(NGA) $(DESIGN_NAME)_sim.vhd $(SHUTUP_WINE)
rm -f $(NGA)

clean:
rm -f $(SYN_FILES) $(SYN_DIR)/$(DESIGN_NAME).srr
rm -f $(EDF) $(BIT)
rm -fr $(LOGS_DIR) $(PAR_DIR)
rm -f map.*
rm -f $(NGD) $(NGA) *.ncd
rm -f $(PCF)
rm -f *.pa?
rm -f *.bld
rm -f *.drc
rm -f *.dly
rm -f *.twr
rm -f *.lst
rm -f *.xpi
rm -f *_sim.* *.alf
rm -f *.log

clean-all: clean
rm -f *.ngo
rm -f $(PROG_DIR)/*

# -- Makefile end --

Сделано это, разумеется, по GNU make.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru