Sida 1 av 1

Kommandot make

InläggPostat: 14 okt 2016, 20:43
av mos
Det finns nu en beskrivning av hur man installerar kommandot make som en del av labbmiljön.
Installera Make

Re: Kommandot make

InläggPostat: 17 okt 2016, 19:15
av lrc
I de makefiler som ingår i design-kursen fungerar inte färgerna i Cygwin, åtminstone inte på mitt system, utan ANSI-koderna skrivs ut som de är:
Kod: Markera allt
$ make help
\033[32;01m-->  Displays help. \033[0m
Usage:
make [target] ...
target:
help                - Displays help.
site-build          - Copy default structure from Anax Flat.
prepare-build       - Clear and recreate the build directory.
less                - Compiling LESS stylesheet.
less-lint           - Linting LESS/CSS stylesheet.

Den version av echo som anropas däri är med andra ord inte inställd på att tolka kontrollsekvenser som standard, men att köra shopt -s xpg_echo har ingen effekt då detta (tydligen) bara gäller för skalets inbyggda variant medan make verkar antingen köra en egen inbyggd funktion eller kalla på /bin/echo direkt.

Finns det något enkelt sätt att tvinga make att köra rätt kommando, med rätt inställningar, annat än att ersätta varje anrop till @echo som innehåller färgkoder med @echo -e och spara om makefilen? Jag har testat ett antal olika saker utan att lyckas, men så är jag ingen expert på dessa saker heller.

Det ser inte så snyggt ut med skräptecken hela tiden... :?

Re: Kommandot make

InläggPostat: 18 okt 2016, 11:50
av mos
Det är nu fixat i senaste versionerna av kursrepon, Anax-flat och anax-flat-theme.

Så här löstes det (exempel):
https://github.com/canax/anax-flat-them ... 7ac68310d7

Re: Kommandot make

InläggPostat: 31 okt 2017, 17:01
av mathilda
Jag har installerat Make enligt instruktionerna men när jag kör kommandot $ make eller $ make --version i cygwin händer ingenting.

Det står inte felaktigt kommando, det händer bara ingenting. Vad kan vara fel?

Re: Kommandot make

InläggPostat: 31 okt 2017, 19:47
av KimmoK
mathilda skrev:Jag har installerat Make enligt instruktionerna men när jag kör kommandot $ make eller $ make --version i cygwin händer ingenting.

Det står inte felaktigt kommando, det händer bara ingenting. Vad kan vara fel?


jag hade samma problem och letade efter möjliga orsaker på nätet men det slutade med att jag hämtade installationsprogrammet från Cygwin och körde den för att uppdatera installationen. Vid val av paket så såg jag till att bocka i "reinstall" på make. (sökte på make och hade view. "Up To Date")

Efter detta så började det fungera i Cygwin.

https://cygwin.com/

Re: Kommandot make

InläggPostat: 01 nov 2017, 17:48
av mos
Så här kan man installera och testa make på Cygwin.
Kod: Markera allt
# Installera make med pakethanteraren apt-cyg
$ apt-cyg install make
... massa saker skrivs till terminalen...

# Kontrollera att make finns i din path/sökväg
$ which make
/usr/bin/make

# Kolla vilken version det är, bara för att se att kommandot svarar på tilltal
$ make --version
GNU Make 4.2.1
Built for x86_64-unknown-cygwin
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.


Notera att i exemplet ovan representerar # start på en kommentar och $ representerar prompten. $ är inte en del av kommandot utan bara en representation av det som är prompten som skrivs ut av terminalen.

Re: Kommandot make

InläggPostat: 06 nov 2017, 20:17
av mathilda
KimmoK skrev:
mathilda skrev:Jag har installerat Make enligt instruktionerna men när jag kör kommandot $ make eller $ make --version i cygwin händer ingenting.

Det står inte felaktigt kommando, det händer bara ingenting. Vad kan vara fel?


jag hade samma problem och letade efter möjliga orsaker på nätet men det slutade med att jag hämtade installationsprogrammet från Cygwin och körde den för att uppdatera installationen. Vid val av paket så såg jag till att bocka i "reinstall" på make. (sökte på make och hade view. "Up To Date")

Efter detta så började det fungera i Cygwin.

https://cygwin.com/



Testade att uppdatera installationen, men make ville fortfarande inte fungera. Upptäckte då att jag hade 32-bitars installerat istället för 64-bitars. Installerade 64-bitars cygwin, körde ny installation för make - och då funkade det! :-)

Re: Kommandot make

InläggPostat: 20 nov 2017, 10:54
av Lotta
Hej, jag försöker installera make på Mac OS och jag läser att det redan ska finnas på Mac, men jag får följande fel:
Charlottas-MacBook-Pro:~ charlottacarlsson$ make --version
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Charlottas-MacBook-Pro:~ charlottacarlsson$ which make
/usr/bin/make

Re: Kommandot make

InläggPostat: 20 nov 2017, 11:17
av Allinrep
Lotta skrev:Hej, jag försöker installera make på Mac OS och jag läser att det redan ska finnas på Mac, men jag får följande fel:
Kod: Markera allt
Charlottas-MacBook-Pro:~ charlottacarlsson$ make --version
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Charlottas-MacBook-Pro:~ charlottacarlsson$ which make
/usr/bin/make

En lösning finns här: StackExchange: macOS Sierra: invalid active developer path

Re: Kommandot make

InläggPostat: 10 nov 2018, 12:48
av ylvalajn
Hej !

Jag har problem med make, som installerar men sedan svarar den inte på kommandon som t ex --version.
Jag har provat att ominstallera, och även att ominstallera cygwin som ju nämns här i tråden.

Kod: Markera allt
$ which make
/usr/bin/make


Några förslag på vad jag kan göra?

Re: Kommandot make

InläggPostat: 12 nov 2018, 12:57
av mos
Som du säger så finns det en samling av tips som sammanställs i inlägget:
viewtopic.php?f=23&t=5800#p57158

Uppdatera Cygwin-installationen, bocka i att make installeras om (fönstret där man kan välja vilka paket som installeras), eller installera om paketet när uppdateringen är klar.

Eventuellt pröva, efter att du uppdaterat Cygwin, uppdatera även repositoryt för apt-cyg som säger vilka paket den hämtar.
Kod: Markera allt
apt-cyg update


Därefter installera make med apt-cyg.
Kod: Markera allt
apt-cyg install make


Tipset ovan säger även att man bör kolla att man har rätt version 32/64 bitars installation av Cygwin. Bara så man har koll på det också.

Det verkar vara standardsätten som gör att man kan få ordning på sin Cygwin så den gillar installationen av make.

Re: Kommandot make

InläggPostat: 14 nov 2018, 08:03
av ylvalajn
Ok.

Jag provade det som jag såg i tråden, men hittade ingen box att markera, kunde inte välja några paket ens utan det stod enbart att det inte fanns något att uppdatera.

Iaf så ska jag snart köpa ny dator ändå och om det inte behövs i denna kursen nu (dvs design) så hoppas jag att det fungerar då jag ominstallerar miljön på den nya datorn.


:)

Re: Kommandot make

InläggPostat: 15 nov 2018, 20:26
av theEmelie
När jag kör koden i me/redovisa/theme
Kod: Markera allt
make install
får jag meddelandet
Kod: Markera allt
make: *** Ingen regel för att skapa målet ”install”.  Stannar.


Samma när jag gör
Kod: Markera allt
make modules-install
så får jag meddelandet
Kod: Markera allt
make: *** Ingen regel för att skapa målet ”modules-install”.  Stannar.


Och jag antar att det inte ska stå så? Hjälp?

Re: Kommandot make

InläggPostat: 15 nov 2018, 20:31
av theEmelie
theEmelie skrev:När jag kör koden i me/redovisa/theme
Kod: Markera allt
make install
får jag meddelandet
Kod: Markera allt
make: *** Ingen regel för att skapa målet ”install”.  Stannar.


Samma när jag gör
Kod: Markera allt
make modules-install
så får jag meddelandet
Kod: Markera allt
make: *** Ingen regel för att skapa målet ”modules-install”.  Stannar.


Och jag antar att det inte ska stå så? Hjälp?


Oops.. visade sig att jag hade fått två theme mappar i varandra redovisa/theme/theme :?

Re: Kommandot make

InläggPostat: 08 maj 2019, 03:39
av ylvalajn
Jag har en fråga om make ...

Hur gör jag för att få de validerings verktygen vi använder i kursen att fungera via make?
Så jag kan använda dem lokalt att se att min kod är som den ska.

Re: Kommandot make

InläggPostat: 08 maj 2019, 19:31
av mos
Du behöver göra "make install".

Dock, de senaste dagarna har det inte fungerat på grund av phpmd vars installationssite inte verkar fungera. Se detaljer i phpmd issue:
https://github.com/phpmd/phpmd/issues/603

Jag fixade en temporär variant så man kan ladda ned phpmd.phar från dbwebb.se/download.

Jag uppdaterade makefilen i kursrepot under example/redovisa/Makefile så att den hämtar från den uppdaterade länken samt att makefilen är lite mer motståndskraftig mot liknande bekymmer.

Så här kan du uppdatera (för oophp-kursen och me/redovisa).
Kod: Markera allt
# Gå till roten av kursrepot för oophp
dbwebb update
cp example/redovisa/Makefile me/redovisa
cd me/redovisa
make install
make test

Re: Kommandot make

InläggPostat: 09 maj 2019, 06:19
av ylvalajn
Yes ok.

Jo ...jag har provat inom oophp och det har fungerat bra.

Men som jag förstår så är make-filerna i oophp en anax modul / knuten till dbwebb. De som kan validera.

Ville validera ngt utanför kursens & anax ramar :)

Kanske finns ngt bra sätt att lägga till validerare i make, tänkte jag.

Re: Kommandot make

InläggPostat: 09 maj 2019, 09:45
av mos
Oki, så du vill ha ett eget projekt där du installerar en utvecklingsmiljö för att göra en egen "make test" med diverse validatorer?

Principen är:
1. fixa ett repo (git)
2. skapa en Makefile
3. Gör "make install" (uppdatera makefilen så att den lokala utvecklingsmiljön installeras)
4. Gör "make test" (uppdatera makefilen så att de lokala testerna och validatorerna körs)

Makefile och make är ett byggverktyg som funnits väldigt länge och går att använda till diverse saker. Det är egentligen ett eget "programmeringsspråk" med egen syntax och manual. Kan man bash så är det närbesläktat. Det har egentligen inget med dbwebb-kommandot att göra.

När man har återkommande saker att göra, så är en variant att samla dessa små skript, targets, i en makefile. Man slipper då minnas en längre kommandorad. När man ser exempel för makefiler så är det ofta kompilering och länkning av C/C++ program. Men det går använda till så mycket mer.

Den Makefile vi använder i kursrepot oophp innehåller en hel del saker. Vill man göra en egen så kan man utgå från den, eller kanske bygga en helt egen, kanske är det enklare att börja med en "tom" makefile.

Du kan ju börja kika på den vi har i kursen?
https://github.com/dbwebb-se/oophp/blob ... a/Makefile

Sen kan du fundera på vilka validatorer det är du vill använda?

Re: Kommandot make

InläggPostat: 09 maj 2019, 14:17
av ylvalajn
Ok, super.

Jag ska prova.
Tidigare (nyligen) då jag kört m Makefil i mitt eget projekt så fungerar enbart de kommandona som jag lagt i make-filen. Använde de som vi blev introducerade vid make installationen (help & hello). Alltså inte make install eller make test - de fungerar inte. Fast make finns på terminalen, det går att kolla med make --version. Och eftersom det står dbwebb / anax i början av de filerna där jag kan använda make test i kurs momenten, så antog jag att det var special anpassat. Vilket det vad jag förstår är till viss del.

Men bra att det ska gå att installera till ett eget projekt.
Jag har ju t ex inte gjort ngt git-repo.
Jag ska prova och tänka.
Och bestämma validatorer.

Återkommer .

Tack :)

Re: Kommandot make

InläggPostat: 10 maj 2019, 09:22
av ylvalajn
Ok...

så jag har gjort ett git repo.

Och jag har gjort en Makefile som är nästan tom, bara 2 targets (för o testa).

Då jag kör make install så får jag ...
Kod: Markera allt
Ylvali@LAPTOP-QA5QJ031 ~/MyProjects/Spektatum_TheApp
$ make install
make: *** No rule to make target 'install'.  Stop.


Kan jag bara lyfta in makefilen från kursen i mitt projekt?

Jag provar gärna göra en egen install, nu eller längre fram. Är det ett stort projekt att göra det själv nu?

Ser att make-filen ifrån kursen har ett install avsnitt...

Kod: Markera allt
# target: install                 - Install all tools
.PHONY:  install
install: prepare install-tools-php install-tools-bash
   @$(call HELPTEXT,$@)
   composer install


Jag skulle vilja validera php & javascript till att börja med.

Re: Kommandot make

InläggPostat: 10 maj 2019, 14:06
av mos
Man behöver berätta för makefilen vad den skall göra, det kallas targets. Du behöver alltså göra ett "install" target.
Kod: Markera allt
.PHONY:  install
install:
   npm install
   composer install


Make är ett kraftfullt verktyg, men det kan ta lite tid att lära sig det.

Jag hade påbörjat att göra min egen minimala makefil för att försöka förstå hur man kan skriva ett target och hur man gör att target är beroende av varandra.

Här är ett beroende där "make install" även kör "prepare", exemplen är från oophp makefilen.
Kod: Markera allt
BIN     := .bin
PHPUNIT := vendor/bin/phpunit
PHPCS   := $(BIN)/phpcs

.PHONY:  install prepare
prepare:
   install -d $(BIN)

install: prepare
   npm install
   composer install
   curl -Lso $(PHPCS) https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar && chmod 755 $(PHPCS)


Sen kan du kika i oophp Makefilen för att se hur man gör target för tex "make phpcs" och "make phpunit".

Det kan vara bra att lägga manualen under huvudkudden: https://www.gnu.org/software/make/manual/

Re: Kommandot make

InläggPostat: 11 maj 2019, 12:02
av Hans
Haft problem med make install, körning slutade i
Kod: Markera allt
make: *** [Makefile:255: install-tools-php] Fel 7

så jag testade göra make clean-all och make install men med samma resultat.

Gick in på forumet, hittade inget relevant vid allmän sökning på make eller make install eller Fel 7.
Men hittade till slut denna tråd.

Det verkar som mitt fel också är löst av Mikaels fix, kunde köra make install som avslutades utan felmeddelande.

Tack.

Med vänlig hälsning,

Hans

Re: Kommandot make

InläggPostat: 14 maj 2019, 13:41
av ylvalajn
:)

Jag tackar så mkt för infot om make setup för validering.

Haha, ska komma ihåg ditt tips om make dokumentation under kudden !

Återkommer om det behövs.

/ Ylva