mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
des_tables.c: generation rule
* defs/gmake.mk (missing/des_tables.c): move the recipe from common.mk. this is less common. * missing/crypt.c (init_des): if des_tables.c is empty, initialize DES tables at runtime. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1f3ec6d858
commit
b1b1f3ded2
4 changed files with 28 additions and 12 deletions
|
@ -748,14 +748,6 @@ $(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.
|
|||
$(Q) $(BASERUBY) "$(srcdir)/tool/transcode-tblgen.rb" -vo $@ $(srcdir)/enc/trans/newline.trans
|
||||
enc/trans/newline.$(OBJEXT): $(NEWLINE_C)
|
||||
|
||||
{$(VPATH)}missing/des_tables.c: $(srcdir)/missing/crypt.c
|
||||
@$(ECHO) building make_des_table
|
||||
$(Q) $(PURIFY) $(CC) $(CPPFLAGS) -DDUMP $(LDFLAGS) $(XLDFLAGS) $(LIBS) $(OUTFLAG)make_des_table $(srcdir)/missing/crypt.c
|
||||
@$(ECHO) generating $@
|
||||
$(Q) $(MAKEDIRS) $(@D)
|
||||
$(Q) ./make_des_table > $@
|
||||
$(Q) $(RMALL) make_des_table*
|
||||
|
||||
verconf.h: $(srcdir)/template/verconf.h.tmpl $(srcdir)/tool/generic_erb.rb
|
||||
$(ECHO) creating $@
|
||||
$(Q) $(BOOTSTRAPRUBY) "$(srcdir)/tool/generic_erb.rb" -o $@ $(srcdir)/template/verconf.h.tmpl
|
||||
|
|
|
@ -77,3 +77,15 @@ sudo-precheck: test
|
|||
install-prereq: sudo-precheck
|
||||
yes-test-all no-test-all: install
|
||||
endif
|
||||
|
||||
$(srcdir)/missing/des_tables.c: $(srcdir)/missing/crypt.c
|
||||
ifeq ($(if $(CC),$(CROSS_COMPILING),yes),yes)
|
||||
touch $@
|
||||
else
|
||||
@$(ECHO) building make_des_table
|
||||
$(Q) $(PURIFY) $(CC) $(CPPFLAGS) -DDUMP $(LDFLAGS) $(XLDFLAGS) $(LIBS) $(OUTFLAG)make_des_table $(srcdir)/missing/crypt.c
|
||||
@$(ECHO) generating $@
|
||||
$(Q) $(MAKEDIRS) $(@D)
|
||||
$(Q) ./make_des_table > $@
|
||||
$(Q) $(RMALL) make_des_table*
|
||||
endif
|
||||
|
|
|
@ -93,6 +93,15 @@ static char sccsid[] = "@(#)crypt.c 8.1 (Berkeley) 6/4/93";
|
|||
# define INIT_DES 0
|
||||
# endif
|
||||
#endif
|
||||
#if !INIT_DES
|
||||
# include "des_tables.c"
|
||||
# ifdef HAVE_DES_TABLES
|
||||
# define init_des() ((void)0)
|
||||
# else
|
||||
# undef INIT_DES
|
||||
# define INIT_DES 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Convert twenty-four-bit long in host-order
|
||||
|
@ -353,10 +362,6 @@ static des_tables_t des_tables[1];
|
|||
|
||||
STATIC void init_des(void);
|
||||
STATIC void init_perm(C_block perm[64/CHUNKBITS][1<<CHUNKBITS], unsigned char p[64], int chars_in, int chars_out);
|
||||
|
||||
#else
|
||||
#include "des_tables.c"
|
||||
#define init_des() ((void)0)
|
||||
#endif
|
||||
|
||||
static const C_block constdatablock = {{0}}; /* encryption constant */
|
||||
|
@ -884,6 +889,8 @@ main(void)
|
|||
{
|
||||
int i, j, k;
|
||||
init_des();
|
||||
|
||||
printf("#ifndef HAVE_DES_TABLES\n\n");
|
||||
printf("/* Initial key schedule permutation */\n");
|
||||
printf("static const C_block PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {\n");
|
||||
for (i = 0; i < numberof(PC1ROT); ++i) {
|
||||
|
@ -953,6 +960,7 @@ main(void)
|
|||
printf("\t},\n");
|
||||
}
|
||||
printf("};\n\n");
|
||||
printf("#define HAVE_DES_TABLES 1\n""#endif\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#ifndef HAVE_DES_TABLES
|
||||
|
||||
/* Initial key schedule permutation */
|
||||
static const C_block PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {
|
||||
{
|
||||
|
@ -1610,3 +1612,5 @@ static const C_block CF6464[64/CHUNKBITS][1<<CHUNKBITS] = {
|
|||
},
|
||||
};
|
||||
|
||||
#define HAVE_DES_TABLES 1
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue