1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include <stdio.h>
#include <string.h>
/*
Forwin Xfilename1 Xfilename2 makeall
fct/mex.c fvt/mex.f
*/
int main(argc,argv)
int argc;char *argv[];
{
char nam1[256]; char nam2[256]; char nam4[512];
char fname[256];
FILE *filesce,*filegat,*filei1;
int i=0;
int narg;
narg=argc-1;
if (NULL == (filesce = fopen ("makeall", "w"))) return 1;
if (NULL == (filegat = fopen ("objects", "w"))) return 1;
strcpy(fname,argv[1]); fname[strlen(fname)]= '\0';
/** we use fname +1 since msvc makefile temporary filenames
begin whith extra @ char **/
if (NULL == (filei1=fopen(fname+1,"r"))) return 1;
nam4[0]='\0'; strcat(nam4,"MEXOBJECTS = ");
/* loop */
while (1)
{
int j;int n; int k=0;
if ( fscanf(filei1,"%s",nam1) == EOF ) break;
n=strlen(nam1);
j=n;i=0;
while ( (j != 0) && (nam1[j] != '/')) j--;
while ( (k < n) ) { nam2[k]=nam1[k+j+1]; k++;};
nam1[j]= '\0';nam2[strlen(nam2)-2]='\0';
strcat(nam4,nam2);strcat(nam4,".obj ");
/* printf("nam1=%s\nnam2=%s\n",nam1,nam2); */
fprintf(filesce, "%s.obj:\n\t@$(CC) $(CFLAGS) -DmexFunction=mex_%s -c %s.c -o %s.obj\n", nam2,nam1,nam2,nam2);
}
fclose(filei1);
strcpy(fname,argv[2]); fname[strlen(fname)]= '\0';
/** we use fname +1 since msvc makefile temporary filenames
begin whith extra @ char **/
if (NULL == (filei1=fopen(fname+1,"r"))) return 1;
/* loop */
while (1)
{
int j;int n; int k=0;
if ( fscanf(filei1,"%s",nam1) == EOF ) break;
n=strlen(nam1);
j=n;i=0;
while ( (j != 0) && (nam1[j] != '/')) j--;
while ( (k < n) ) { nam2[k]=nam1[k+j+1]; k++;};
nam1[j]= '\0';nam2[strlen(nam2)-2]='\0';
strcat(nam4,nam2);strcat(nam4,".obj ");
/* printf("nam1=%s\nnam2=%s\n",nam1,nam2); */
fprintf(filesce, "%s.obj:\n\t@$(FC) $(FFLAGS) %s.F \n", nam2,nam2);
}
fprintf(filegat,"%s\n",nam4);
fclose(filei1);
fclose(filesce);
return 0;
}
|