Repository 32bit  Forum
Repository 64bit  Wiki

[RISOLTO] Problema con Makefile

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 11: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 21 volte
Ultima modifica di boh il lun ott 03, 2011 0: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: 746
Iscritto il: ven set 16, 2005 0:00
Località: Milano.
Slackware: 14 (x64)
Kernel: 3.2.45-smp
Desktop: KDE 4.10.3

Re: Problema con Makefile

Messaggioda Ansa89 » ven set 30, 2011 13:09

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

Re: Problema con Makefile

Messaggioda boh » ven set 30, 2011 13: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: 746
Iscritto il: ven set 16, 2005 0:00
Località: Milano.
Slackware: 14 (x64)
Kernel: 3.2.45-smp
Desktop: KDE 4.10.3

Re: Problema con Makefile

Messaggioda fgcl2k » ven set 30, 2011 14: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: 123
Iscritto il: gio ott 29, 2009 11:14
Nome Cognome: Federico
Slackware: 13.37 (64bit)
Kernel: 2.6.37.6
Desktop: KDE 4.8.4

Re: Problema con Makefile

Messaggioda boh » ven set 30, 2011 15: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: 746
Iscritto il: ven set 16, 2005 0:00
Località: Milano.
Slackware: 14 (x64)
Kernel: 3.2.45-smp
Desktop: KDE 4.10.3

Re: Problema con Makefile

Messaggioda 414N » sab ott 01, 2011 9: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: 2844
Iscritto il: mer feb 13, 2008 17:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: Problema con Makefile

Messaggioda boh » lun ott 03, 2011 0: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: 746
Iscritto il: ven set 16, 2005 0:00
Località: Milano.
Slackware: 14 (x64)
Kernel: 3.2.45-smp
Desktop: KDE 4.10.3

Re: Problema con Makefile

Messaggioda fgcl2k » lun ott 03, 2011 21: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: 123
Iscritto il: gio ott 29, 2009 11:14
Nome Cognome: Federico
Slackware: 13.37 (64bit)
Kernel: 2.6.37.6
Desktop: KDE 4.8.4


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite