вызывая make из скрипта - PullRequest
       1

вызывая make из скрипта

0 голосов
/ 26 июня 2011

У меня есть ситуация, когда мне приходится компилировать файл .cc после частой смены переменных. Мой скрипт изменяет переменные в файле .cc

Затем я пытаюсь скомпилировать его, сначала перейдя в каталог в сценарии оболочки, сказав: кд

и затем следует make. Все мои инструкции по оболочке сохранены в файле .sh.

однако, когда я запускаю это, я получаю ошибку

make: *** No targets specified and no makefile found.  Stop.

но когда я вручную захожу в каталог и набираю make, он работает.

Почему сценарий оболочки не может заставить make работать?

РЕДАКТИРОВАТЬ Я добавил скрипт

#! /bin/sh
# simDir=/home/amm/ns-projects/EURANE/Release



simtime=21
high_users=5
low_users=3
rm user_throughput.txt qos_throughput.txt
echo "Iteration,Users, Low, High,Low average,High average, Average cell througput" >> qos_throughput.txt



for(( husers = 1; husers <= $high_users; husers++ ))      ### Outer for loop ###

do

for(( lusers = 1 ; lusers <= $low_users; lusers++ )) ### Inner for loop ###
do                  

                total_users=0
                let total_users=$husers+$lusers
                echo "$total_users $husers $lusers"
                #Configure the sh file
                num_users=0
                cd /home/chanditha/EURANE_multi_cells_itpp/simulation_scripts
                printf -v num_users "NUM_USERS=\"%d\"" $total_users
                rm hsdpa_ftp_4cells.sh
                perl -pe "s/.*/$num_users/ if $. == 5" hsdpa_ftp_4cells_old.sh > hsdpa_ftp_4cells.sh
                chmod u+x hsdpa_ftp_4cells.sh


                #Configure the awk file
                cd /home/chanditha/EURANE_multi_cells_itpp/simulation_scripts/scripts
                awkline=0
                printf -v awkline "class_cuttoff=max_flow-%d;" $husers
                rm tcp_performance_4cells.awk
                perl -pe "s/.*/$awkline/ if $. == 137" tcp_performance_4cells_old.awk > tcp_performance_4cells.awk




                #Change the directory and go to the .cc file
                cd /home/chanditha/ns-allinone-2.30/ns-2.30/umts
                printf -v cut_off "int cut_off = flow_max_-%d;" $husers;
                rm hsdpalink.cc
                perl -pe "s/.*/$cut_off/ if $. == 2109" hsdpalink_old.cc > hsdpalink.cc
                #Make it
                    make clean && make

done

            cd /home/chanditha/EURANE_multi_cells_itpp/simulation_scripts
            ./hsdpa_ftp_4cells_run_all.sh
done

1 Ответ

1 голос
/ 26 июня 2011

Это, вероятно, займет несколько итераций. Попробуйте запустить этот скрипт и расскажите нам, что происходит:

cd /home/chanditha/ns-allinone-2.30/ns-2.30/umts
make

Кроме того, вся ваша архитектура звучит шатко. Вы используете скрипт для изменения переменных в источнике, а затем перекомпилировать? Ради всего святого, используйте файл параметров: сценарий записывает его, исполняемый файл читает его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...