Repository 32bit  Forum
Repository 64bit  Wiki

[RISOLTO] Problema con Makefile

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[RISOLTO] Problema con Makefile

Messaggioda boh » ven set 30, 2011 10:00

Ciao a tutti :)
Sto lavorando all'espansione di un progetto, il quale è suddiviso in più directory e poi il tutto viene compilato con make.
Mi spiego meglio. La struttura del progetto è la seguente:

Codice: Seleziona tutto
src - binzrs (host_binzrs.c, host_binzrs.h)
    - core (archive.c, archive.h, misc.c, misc.h, profile.c, profile.h, prtg.c, purge.c, purge.h, store.c, store.h)
    - gens (cuda_gens.cu, cuda_gens.h, gens_common.c, gens_common.h, host_gens.c, host_gens.h)
    - halgs (cuda_bs_des_kernel.cu, cuda_bs_sboxes.h, cuda_halgs.c, cuda_halgs.h, host_halgs.h, des_crypt3.c, md5_crypt3.c)
    - include (algorithm.h, binarizer.h, prtg.h, rbtable.h, screen.h)
    - rfuncs (cuda_rfuncs.c, cuda_rfuncs_kernels.cu, host_rfuncs.c, host_rfuncs.h)
    - utils (prtar.c, prtdump.c)


Io, oltre ad alcune modifiche minori ai files già esistenti, devo aggiungere alla directory /halgs i seguenti files:
- cuda_ntlm.h;
- cuda_ntlm_kernel.cu;
- ntlm_crypt.c;
- ntlm_crypt.h.

Fatta la descrizione preliminare, arrivo al mio problema, il Makefile! E' già presente un Makefile per i sorgenti pre-esistenti e non riesco ad aggiungere regole e quanto altro per far compilare anche i miei file con tutto il resto.
Il Makefile in questione lo allego perchè è troppo lungo da mettere qui (ho aggiunto .txt, altrimenti non me lo faceva allegare).

Sapete darmi qualche consiglio o per lo meno consigliarmi da dove cominciare?
Intanto grazie ;)
Allegati
Makefile.txt
(79.97 KiB) Scaricato 32 volte
Ultima modifica di boh il dom ott 02, 2011 23:41, modificato 1 volta in totale.
"Be yourself. Everyone else is already taken." ~ Oscar Wilde
Avatar utente
boh
Linux 2.6
Linux 2.6
 
Messaggi: 935
Iscritto il: gio set 15, 2005 23:00
Località: Milano
Slackware: 14.1 (x64)
Kernel: 3.10.17
Desktop: KDE 4.10.5

Re: Problema con Makefile

Messaggioda Ansa89 » ven set 30, 2011 12:09

Qual'è il target che dovresti aggiungere?
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2619
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.15.5-ck1
Desktop: XFCE 4.6.1

Re: Problema con Makefile

Messaggioda boh » ven set 30, 2011 12:26

boh ha scritto:Io, oltre ad alcune modifiche minori ai files già esistenti, devo aggiungere alla directory /halgs i seguenti files:
- cuda_ntlm.h;
- cuda_ntlm_kernel.cu;
- ntlm_crypt.c;
- ntlm_crypt.h.


Questi sono i file che devo aggiungere.
I due sorgenti .c e .cu includono i relativi header qui sopra; gli header, invece, oltre ad alcune librerie di sistema, includono anche algorithm.h che si trova in /include.
"Be yourself. Everyone else is already taken." ~ Oscar Wilde
Avatar utente
boh
Linux 2.6
Linux 2.6
 
Messaggi: 935
Iscritto il: gio set 15, 2005 23:00
Località: Milano
Slackware: 14.1 (x64)
Kernel: 3.10.17
Desktop: KDE 4.10.5

Re: Problema con Makefile

Messaggioda fgcl2k » ven set 30, 2011 13:33

Il Makefile che hai allegato non è scritto a mano ma generato da automake a partire da un file Makefile.am.
I file li devi quindi aggiungere in Makefile.am (nella directory halgs dovrebbe essercene uno) e poi lanciare ./configure dalla directory principale. Quando configure ha finito puoi lanciare make.
Avatar utente
fgcl2k
Linux 2.0
Linux 2.0
 
Messaggi: 127
Iscritto il: gio ott 29, 2009 10:14
Nome Cognome: Federico
Slackware: 14 (64bit)
Desktop: KDE

Re: Problema con Makefile

Messaggioda boh » ven set 30, 2011 14:01

Intanto grazie della risposta :)
Makefile.am è il seguente:

Codice: Seleziona tutto
.cu.o:
   $(NVCC) -o $@ -c $< $(CUDA_CFLAGS)

bin_PROGRAMS = prtg prtdump prtar

prtg_LDADD = $(LIBS) $(CUDA_LIBS)
prtg_CFLAGS = 

prtg_SOURCES = binzrs/host_binzrs.c \
               binzrs/host_binzrs.h \
               core/prtg.c \
               core/misc.c \
               core/misc.h \
               core/store.c \
               core/store.h \
               core/purge.c \
               core/purge.h \
               core/archive.c \
               core/archive.h \
               core/profile.c \
               core/profile.h \
               gens/cuda_gens.cu \
               gens/cuda_gens.h \
               gens/host_gens.c \
               gens/host_gens.h \
               gens/gens_common.c \
               gens/gens_common.h \
               include/algorithm.h \
               include/binarizer.h \
               include/screen.h \
               include/prtg.h \
               include/rbtable.h \
               rfuncs/cuda_rfuncs.c \
               rfuncs/cuda_rfuncs_kernels.cu \
               rfuncs/cuda_rfuncs.h \
               rfuncs/host_rfuncs.c \
               rfuncs/host_rfuncs.h \
               halgs/cuda_halgs.c \
               halgs/cuda_bs_des_kernel.cu \
               halgs/cuda_halgs.h \
               halgs/des_crypt3.c \
               halgs/md5_crypt3.c \
               halgs/host_halgs.h \
               halgs/cuda_bs_sboxes.h

prtdump_LDADD = $(LIBS) $(CUDA_LIBS)
prtdump_CFLAGS =                 
               
prtdump_SOURCES = utils/prtdump.c \
               binzrs/host_binzrs.c \
               binzrs/host_binzrs.h \
               core/misc.c \
               core/misc.h \
               core/store.c \
               core/store.h \
               core/purge.c \
               core/purge.h \
               core/archive.c \
               core/archive.h \
               core/profile.c \
               core/profile.h \
               gens/cuda_gens.cu \
               gens/cuda_gens.h \
               gens/host_gens.c \
               gens/host_gens.h \
               gens/gens_common.c \
               gens/gens_common.h \
               include/algorithm.h \
               include/binarizer.h \
               include/screen.h \
               include/prtg.h \
               include/rbtable.h \
               rfuncs/cuda_rfuncs.c \
               rfuncs/cuda_rfuncs_kernels.cu \
               rfuncs/cuda_rfuncs.h \
               rfuncs/host_rfuncs.c \
               rfuncs/host_rfuncs.h \
               halgs/cuda_halgs.c \
               halgs/cuda_bs_des_kernel.cu \
               halgs/cuda_halgs.h \
               halgs/des_crypt3.c \
               halgs/md5_crypt3.c \
               halgs/host_halgs.h \
               halgs/cuda_bs_sboxes.h
               
prtar_LDADD = $(LIBS) $(CUDA_LIBS)
prtar_CFLAGS =                 
               
prtar_SOURCES = utils/prtar.c \
               binzrs/host_binzrs.c \
               binzrs/host_binzrs.h \
               core/misc.c \
               core/misc.h \
               core/store.c \
               core/store.h \
               core/purge.c \
               core/purge.h \
               core/profile.c \
               core/profile.h \
               core/archive.c \
               core/archive.h \
               gens/cuda_gens.cu \
               gens/cuda_gens.h \
               gens/host_gens.c \
               gens/host_gens.h \
               gens/gens_common.c \
               gens/gens_common.h \
               include/algorithm.h \
               include/binarizer.h \
               include/screen.h \
               include/prtg.h \
               include/rbtable.h \
               rfuncs/cuda_rfuncs.c \
               rfuncs/cuda_rfuncs_kernels.cu \
               rfuncs/cuda_rfuncs.h \
               rfuncs/host_rfuncs.c \
               rfuncs/host_rfuncs.h \
               halgs/cuda_halgs.c \
               halgs/cuda_bs_des_kernel.cu \
               halgs/cuda_halgs.h \
               halgs/des_crypt3.c \
               halgs/md5_crypt3.c \
               halgs/host_halgs.h \
               halgs/cuda_bs_sboxes.h                         

CLEANFILES = core/*.orig utils/*.orig halgs/*.orig binzrs/*.orig rfuncs/*.orig *.prt *.out
   


Deduco che devo solo aggiungere i file con i loro percorsi alle varie SOURCES e poi lanciare configure seguito da make?
"Be yourself. Everyone else is already taken." ~ Oscar Wilde
Avatar utente
boh
Linux 2.6
Linux 2.6
 
Messaggi: 935
Iscritto il: gio set 15, 2005 23:00
Località: Milano
Slackware: 14.1 (x64)
Kernel: 3.10.17
Desktop: KDE 4.10.5

Re: Problema con Makefile

Messaggioda 414N » sab ott 01, 2011 8:12

boh ha scritto:Deduco che devo solo aggiungere i file con i loro percorsi alle varie SOURCES e poi lanciare configure seguito da make?

Dipende.
Nel Makefile.am sono indicati tre binari da produrre da vari sorgenti. Devi aggiungere i tuoi sorgenti al binario (o ai binari) che poi li dovranno utilizzare.
PS: credo sia inutile inserire gli header tra i sorgenti da compilare, dato che dovrebbero essere "pescati" in automatico. Prova a rimuverli per vedere come si comporta make.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2877
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Problema con Makefile

Messaggioda boh » dom ott 02, 2011 23:07

Con configure tutto si è risolto! :D
Un grazie anche a 414N per la risposta; per quanto riguarda gli header, proverò a toglierli ;)
"Be yourself. Everyone else is already taken." ~ Oscar Wilde
Avatar utente
boh
Linux 2.6
Linux 2.6
 
Messaggi: 935
Iscritto il: gio set 15, 2005 23:00
Località: Milano
Slackware: 14.1 (x64)
Kernel: 3.10.17
Desktop: KDE 4.10.5

Re: Problema con Makefile

Messaggioda fgcl2k » lun ott 03, 2011 20:04

boh ha scritto:Con configure tutto si è risolto! :D
Un grazie anche a 414N per la risposta; per quanto riguarda gli header, proverò a toglierli ;)


Probabilmente in fase di compilazione funzionerebbe lo stesso, però "romperesti" alcuni target del Makefile, tipo
Codice: Seleziona tutto
make dist

Quando generi l'archivio per distribuire il tuo programma i file .h non indicati non saranno presenti.
Avatar utente
fgcl2k
Linux 2.0
Linux 2.0
 
Messaggi: 127
Iscritto il: gio ott 29, 2009 10:14
Nome Cognome: Federico
Slackware: 14 (64bit)
Desktop: KDE


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti

cron