00001
00002
00003 #include <gtk/gtk.h>
00004
00005 gchar *AppCAPTION = "Fasm Bx Editor";
00006 gchar *AppConf = "EdBx-Fasm.conf";
00007 gchar *AppEXTproj = "*.bxfp";
00008 gchar *AppCOMPILER = "fasm";
00009 gchar *AppLINKER = "ld";
00010 gchar *AppICON = "img/ico.png";
00011
00012 #define nbEXT 4
00013 gchar *EXTs[nbEXT] = { NULL , "asm" , "inc" , "ash" };
00014 gchar *IMGs[nbEXT] = { NULL ,"img/a.png","img/inc.png","img/inc.png"};
00015
00016 gchar *AppNEWfile = "new.asm";
00017 gchar *AppMIME = "text/x-asm";
00018 gchar *AppTEMPLATE = "Templates/hello.asm";
00019 gchar *AppABOUTstr = "Fasm Bx Editor\nEcrit en C avec GTK+ 2.0\n\n"
00020 "Par Bertrand-Xavier Massot (C) 2006\n";
00021
00022 #include "Globals.h"
00023
00024
00025
00026
00027 void Projet_Compiler()
00028 {
00029 gshort n, c=0;
00030 gchar *S, *d=NULL;
00031
00032 gchar *noms[100];
00033 gchar *chems[100];
00034
00035
00036
00037 if (ProjetUseMAKEFILE)
00038 {
00039 gtk_list_store_clear(GTK_LIST_STORE(model));
00040 for (n=0; n<NB; n++)
00041 {
00042 if (g_strcasecmp(nom[n],"makefile")==0)
00043 {
00044 d = g_get_current_dir();
00045 break;
00046 }
00047 }
00048 if (d)
00049 {
00050 S = g_path_get_dirname(chemin[n]);
00051 chdir(S);
00052 S = g_strdup("make");
00053 Liste_Add_Msg(S);
00054 Creer_Pipe(S);
00055 chdir(d);
00056 g_free(d);
00057 }
00058 else Liste_Add_Msg("Ajoutez le makefile au projet.");
00059 }
00060
00061
00062 else
00063 {
00064 gtk_list_store_clear(GTK_LIST_STORE (model));
00065
00066
00067 for (n=0; n<NB; n++)
00068 {
00069 if (ext[n]==1)
00070 {
00071 noms[c] = getNomSansExtension(nom[n]);
00072 chems[c] = g_path_get_dirname (chemin[n]);
00073 c++;
00074 }
00075 }
00076
00077
00078 if (c==1)
00079 {
00080 for (n=0; n<NB; n++)
00081 {
00082 if (ext[n]==1)
00083 {
00084 S = g_strdup_printf("%s %s %s 2>&1", AppCOMPILER, chemin[n], ProjetEXEname);
00085 Liste_Add_Msg(S);
00086 Creer_Pipe(S);
00087 }
00088 }
00089 }
00090
00091
00092 else if (c>1)
00093 {
00094 for (n=0; n<c; n++)
00095 {
00096 S = g_strdup_printf("%s %s/%s.asm %s/%s.o", AppCOMPILER,
00097 chems[n],noms[n],
00098 chems[n],noms[n]);
00099 Liste_Add_Msg(S);
00100 Creer_Pipe(S);
00101 }
00102
00103 S = g_strdup("ld");
00104 for (n=0; n<c; n++)
00105 S = g_strdup_printf("%s %s/%s.o", S, chems[n], noms[n]);
00106 S = g_strdup_printf("%s -o %s", S, ProjetEXEname);
00107 Liste_Add_Msg(S);
00108 Creer_Pipe(S);
00109 }
00110 }
00111 }
00112
00113
00114
00115
00116 int main(int argc, char **argv)
00117 {
00118 gtk_init(&argc, &argv);
00119
00120 Show_Editor();
00121 if (argv[1]) Projet_Ouvrir(argv[1]);
00122
00123 gtk_main();
00124 return 0;
00125 }