Kommandot make

  • Författare
  • Meddelande
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Kommandot make

Inlägg14 okt 2016, 20:43

Det finns nu en beskrivning av hur man installerar kommandot make som en del av labbmiljön.
Installera Make
...
..:
.... /mos
Online
Användarvisningsbild

lrc

troubleshooter

  • Inlägg: 389
  • Blev medlem: 11 aug 2016, 21:38
  • Ort: Östersund

Re: Kommandot make

Inlägg17 okt 2016, 19:15

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... :?
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kommandot make

Inlägg18 okt 2016, 11:50

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
...
..:
.... /mos

mathilda

css-hackare

  • Inlägg: 25
  • Blev medlem: 17 jan 2016, 22:20

Re: Kommandot make

Inlägg31 okt 2017, 17:01

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?
Användarvisningsbild

KimmoK

javascriptare

  • Inlägg: 37
  • Blev medlem: 16 aug 2016, 07:39
  • Ort: Södertälje

Re: Kommandot make

Inlägg31 okt 2017, 19:47

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/
Kimmo Kiviranta

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
- Martin Golding
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kommandot make

Inlägg01 nov 2017, 17:48

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.
...
..:
.... /mos

mathilda

css-hackare

  • Inlägg: 25
  • Blev medlem: 17 jan 2016, 22:20

Re: Kommandot make

Inlägg06 nov 2017, 20:17

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! :-)

Lotta

php-programmerare

  • Inlägg: 45
  • Blev medlem: 09 jan 2013, 11:53
  • Ort: Stockholm

Re: Kommandot make

Inlägg20 nov 2017, 10:54

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
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Kommandot make

Inlägg20 nov 2017, 11:17

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

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg10 nov 2018, 12:48

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?
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kommandot make

Inlägg12 nov 2018, 12:57

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.
...
..:
.... /mos

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg14 nov 2018, 08:03

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.


:)

theEmelie

html-guru

  • Inlägg: 60
  • Blev medlem: 02 sep 2018, 20:06

Re: Kommandot make

Inlägg15 nov 2018, 20:26

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?

theEmelie

html-guru

  • Inlägg: 60
  • Blev medlem: 02 sep 2018, 20:06

Re: Kommandot make

Inlägg15 nov 2018, 20:31

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 :?

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg08 maj 2019, 03:39

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.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kommandot make

Inlägg08 maj 2019, 19:31

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
...
..:
.... /mos

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg09 maj 2019, 06:19

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.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kommandot make

Inlägg09 maj 2019, 09:45

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?
...
..:
.... /mos

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg09 maj 2019, 14:17

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 :)

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg10 maj 2019, 09:22

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.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 10922
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kommandot make

Inlägg10 maj 2019, 14:06

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/
...
..:
.... /mos

Hans

html-kodare

  • Inlägg: 19
  • Blev medlem: 08 sep 2018, 12:24

Re: Kommandot make

Inlägg11 maj 2019, 12:02

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

ylvalajn

troubleshooter

  • Inlägg: 215
  • Blev medlem: 11 feb 2013, 13:52

Re: Kommandot make

Inlägg14 maj 2019, 13:41

:)

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

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 18 gäster